GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo decide un programa si tiene o no una salida en color?

Cuando ejecuto un comando desde una terminal que imprime una salida en color (como ls o gcc ), se imprime la salida en color. Según tengo entendido, el proceso en realidad genera códigos de escape ANSI y el terminal formatea el color.

Sin embargo, si ejecuto el mismo comando mediante otro proceso (por ejemplo, una aplicación C personalizada) y redirijo la salida a la propia salida de la aplicación, estos colores no persisten.

¿Cómo decide un programa si generar o no texto con formato de color? ¿Hay alguna variable de entorno?

Respuesta aceptada:

La mayoría de estos programas solo envían códigos de color a un terminal de forma predeterminada; verifican si su salida es un TTY, usando isatty(3) . Por lo general, hay opciones para anular este comportamiento:deshabilitar colores en todos los casos o habilitar colores en todos los casos. Para GNU grep por ejemplo, --color=never deshabilita los colores y --color=always los habilita.

En un shell, puede realizar la misma prueba usando -t test operador:[ -t 1 ] solo tendrá éxito si la salida estándar es un terminal.


Linux
  1. ¿Cómo enviar pulsaciones de teclas (f5) desde la terminal a un programa Gui?

  2. “cola -f | Iconv -fsjis” ¿No genera nada?

  3. Linux - Ldd no encuentra la ruta, ¿cómo agregar?

  4. El indicador de bash de Docker no muestra la salida de color

  5. ¿Cómo copiar la salida del terminal?

Cómo corregir el error 'El repositorio no tiene un archivo de lanzamiento' en Ubuntu

Cómo compilar C, C++ y Java usando Terminal en Linux

¿Cómo hacer nada para siempre de una manera elegante?

¿Cómo envío texto en color a una terminal Linux?

Cómo redirigir la salida del programa como su entrada

en la consola de Linux, cómo NO envolver la salida