2012-06-18 18 views
6

Sto scrivendo uno script di shell che mi piacerebbe usare il supporto a 256 colori quando presente. In un mondo giusto, xterm sarebbe sufficiente impostare la variabile di ambiente TERMxterm-256color e userei tput colors per scoprire il supporto.Come può uno script della shell indicare se è in esecuzione in una finestra di xterm con supporto a 256 colori?

Ma viviamo in un mondo ingiusto. xterm imposta TERM su xterm anche se lanciato con TERM=xterm-256color. C'è qualcosa che posso fare all'interno di uno script di shell per scoprire se lo script è in esecuzione con stdout connesso a un tty in esecuzione in una finestra xterm a 256 colori? Se è così, posso impostare personalmente la variabile d'ambiente.

risposta

2

È possibile verificare la versione xterm - $ XTERM_VERSION. Anche se non sono sicuro da quale versione xterm ha iniziato a supportare 256 colori. Altri terminali (ad esempio gnome-terminal), si comportano in modo simile a xterm ma impostano anche la variabile COLORTERM per correggere il nome del terminale (gnome-256color).

0

Poiché la maggior parte xterm -s sono colorized in questi giorni, presumo che il terminale ha 256 colori, e rendere lo script accetta un'opzione (forse -monochrome o -no-colors) altrimenti.

BTW, vedo anche un motivo per alcuni power-user per forzare la -monochrome comportamento: sulle connessioni molto lente (si pensi di InterContinental ssh) potrebbe essere utile disabilitare i colori per abbassare la larghezza di banda.

+0

supporto per la maggior parte solo 16 colori. –