AFAICT, ni la página del manual para GNU grep
, ni se info grep
digna deletrear qué --color=auto
significa.
Debo ser una de las pocas personas en el planeta para la cual el significado de esta opción no es inmediatamente obvio.
Supongo que --color=auto
"está EN ALGUNA PARTE en el medio" --color=never
y --color=always
, pero eso todavía deja demasiado sin especificar.
less -R
, puede obtener resaltado de coincidencias, pero debe especificar--color=always
grep para que funcione.Dado que
grep
es un programa GNU, otra opción podría ser echar un vistazo al código fuente.Internamente grep prueba
static int color_option
para0
,1
o2
.0
nunca use salida coloreada1
siempre usa colores2
solo use colores cuando imprima en un terminalAhora, cuando entrega
--color=auto
a grep como argumento en su CLI, establece internamente la variablecolor_option
en2
.Si
color_option
es igual2
grep
entonces se comprueba siSTDOUT
está vinculado a un terminal o si el usuario deshabilitó el outpit coloreado a través deshell environment variables
. Si el primero es verdadero y se permite la salida coloreada,grep
continúa con la evaluación de los colores que se deben usar y finalmente se imprime en suCLI
color.fuente: (grep 2.21)
fuente