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.