Estaba jugando con la configuración GREP_OPTIONSy no pude hacerlo funcionar. Simplemente curioso por qué.
Salida de comandos de prueba simple:
richard@ubuntu:~$ echo $GREP_OPTIONS
richard@ubuntu:~$
richard@ubuntu:~$ ls | grep o
Desktop
downloads
Dropbox
ebooks
workspace
richard@ubuntu:~$ ls | grep o --color=always | less -R
richard@ubuntu:~$ export GREP_OPTIONS="--color=always"
richard@ubuntu:~$ ls | grep o | less -R
- El primer grep sale al terminal en color (cada 'o' es roja)
- El segundo grep sale con menos color (igual que 1)
- Pero el tercer grep sale a menos pero en blanco y negro, pero esto debería ser en color.
Entonces parece que grep está ignorando GREP_OPTIONS. ¿Es eso un error o estoy haciendo algo mal?
(Ubuntu 12.04.2, GNU grep 2.10)

grep v3.1en voz alta se quejaGREP_OPTIONSen cada invocación:grep: warning: GREP_OPTIONS is deprecated; please use an alias or scriptalias grep='GREP_COLOR="1;33;40" LANG=C grep --color=auto'para resaltar en amarillo.Respuestas:
Si
grep oproduce salida de color, entoncesgrepes un alias paragrep --color=autoogrep --color=always(o posiblemente más opciones), oGREP_OPTIONSse establece en un valor que contiene--color=autoo--color=always. Como$GREP_OPTIONSestá vacío, debe ser el alias.Como
grep o | less -Rno muestra colores, el alias debe sergrep --color=auto(una elección sensata). Con el alias, elgrepcomando siempre recibe la--coloropción en la línea de comando, y esto tiene prioridad sobre la variable de entorno.Si desea utilizar la variable de entorno, elimine la definición de alias de su
~/.bashrc, o para una sesión de ejecuciónunalias grep. Puede reemplazaralias grep='grep --color=auto'porexport GREP_OPTIONS='--color=auto': tienen esencialmente el mismo significado, excepto que:GREP_OPTIONSun valor diferente solo anula el último;grepdesde un shell interactivo, mientras que la configuraciónGREP_OPTIONStambién se aplica cuandogrepse ejecuta desde scripts y otras aplicaciones.Nunca ponga
--color=alwaysni la mayoría de las otras opciones enGREP_OPTIONS: rompería muchos programas que analizan la salida degrep.--color=autoes la única opción segura para ponerGREP_OPTIONS. Para cualquier otra cosa, use el alias. Las versiones futuras de GNU grep dejarán de admitir la opción por este motivo.Tenga en cuenta que la definición de alias entra
~/.bashrc(es una configuración de shell), mientras que la definición de la variable de entorno entra~/.profile(es una configuración de sesión). Consulte ¿Hay un archivo equivalente ".bashrc" leído por todos los shells?Si desea ejecutar el comando sin alias solo una vez, ejecute en
\greplugar degrep(citando cualquier parte del nombre omite la búsqueda de alias).fuente
GREP_OPTIONSestá en desuso a favor de laaliasvariante.