scripts script que programas ejemplos ejecutar comandos comando bash colors pipe xterm

bash - que - script linux ejemplos



El comando bash conserva el color cuando se canaliza (2)

Posible duplicado:
¿Se puede capturar la salida coloreada a través del shell redirect?

preparar

En este caso, específicamente, estoy tratando de preservar los colores en git status -s al canalizarlo a otro comando.

Algunos comandos de git, diff por ejemplo, y otros comandos como grep tienen la opción --color=always pero git status no.

pregunta

¿Hay alguna forma de canalizar o capturar la salida de un comando y hacer que piense que está enviando al shell xterm para que no desactive automáticamente los colores?


Aquí hay un fragmento de script utilizando el resultado coloreado de ls como ejemplo (en Mac OS X 10.6).

# no colored ls output if stdout is a pipe (and not a tty) ls -G / ls -G / | cat script -q /dev/null ls -G / | tr -d ''/r'' | cat # write output of script command to a variable var="$(script -q /dev/null ls -G / | tr -d ''/r'' | cat)" echo "$var"


La mayoría de los comandos que imprimen esos códigos de color comprueban explícitamente si stdout / stderr es un tty (usando la función isatty ).

Si desea conservar los códigos de color, puede ejecutarlo dentro de un emulador de terminal como la screen o el script directo del registrador, guardando la salida en un archivo.