Estoy escribiendo un script de shell que usa caracteres de color ANSI en la línea de comandos.Detección del tipo de flujo de salida de un script de shell
Ejemplo: example.sh
#!/bin/tcsh
printf "\033[31m Success Color is awesome!\033[0m"
Mi problema es cuando se hace:
$ ./example.sh > out
o
$./example.sh | grep
Los códigos ASCII serán enviados junto con la prima texto, arruinando la salida y simplemente causando caos en general.
Me interesa saber si hay una manera de detectar esto para poder deshabilitar el color para este caso especial.
He buscado en las páginas man de tcsh y en la web por un tiempo y todavía no he podido encontrar nada específico de shell.
No estoy obligado a tcsh, es nuestro estándar de grupo ... pero ¿a quién le importa?
¿Es posible detectar, dentro de un script de shell, si su salida está siendo redirigida o canalizada?
* solo * hicimos esto: http://stackoverflow.com/questions/911168/detect-if-shell-script-is-running-through-a-pipe – dmckee
Jaja que es realmente espeluznante que le preguntó cuando en realidad estaba encontrando el problema Acabo de llegar a hacer la pregunta. –
Una relacionada: http://unix.stackexchange.com/q/9957/50602 – Palec