2012-06-18 16 views
6

Estoy escribiendo un script de shell que me gustaría usar soporte de 256 colores cuando esté presente. En un mundo justo, xterm simplemente configuraría la variable de entorno TERM en xterm-256color y usaría tput colors para descubrir la compatibilidad.¿Cómo puede un script de shell decir si se está ejecutando en una ventana xterm con soporte de 256 colores?

Pero vivimos en un mundo injusto. xterm establece TERM a xterm incluso cuando se inició con TERM=xterm-256color. ¿Hay algo que pueda hacer desde un script de shell para descubrir si el script se está ejecutando con stdout conectado a un tty ejecutándose en una ventana de 256 colores xterm? Si es así, puedo configurar la variable de entorno yo mismo.

Respuesta

2

Puede verificar la versión xterm - $ XTERM_VERSION. Aunque no estoy seguro de qué versión xterm comenzó a admitir 256 colores. Otros terminales (por ejemplo, gnome-terminal) se comportan de manera similar a xterm, pero también configuran la variable COLORTERM para corregir el nombre del terminal (gnome-256color).

0

Como la mayoría de xterm -s se colorized estos días, quiero suponer que el terminal cuenta con 256 colores, y hacer que el script aceptar una opción (tal vez -monochrome o -no-colors) en caso contrario.

BTW, también veo una razón para que algunos usuarios de la potencia fuercen el comportamiento -monochrome: en conexiones muy lentas (piense en intercontinental ssh) podría ser útil desactivar los colores para disminuir el ancho de banda.

+0

mayoría de los términos de soporte sólo 16 colores. –

Cuestiones relacionadas