Si grep oproduce salida de color, entonces grepes un alias para grep --color=autoo grep --color=always(o posiblemente más opciones), o GREP_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 ser grep --color=auto(una elección sensata). Con el alias, el grepcomando 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ón unalias grep. Puede reemplazar alias grep='grep --color=auto'por export GREP_OPTIONS='--color=auto': tienen esencialmente el mismo significado, excepto que:
- establecer
GREP_OPTIONSun valor diferente solo anula el último;
- el alias solo se activa cuando se ejecuta
grepdesde un shell interactivo, mientras que la configuración GREP_OPTIONStambién se aplica cuando grepse ejecuta desde scripts y otras aplicaciones.
Nunca ponga --color=alwaysni la mayoría de las otras opciones en GREP_OPTIONS: rompería muchos programas que analizan la salida de grep. --color=autoes la única opción segura para poner GREP_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 de grep(citando cualquier parte del nombre omite la búsqueda de alias).
grep v3.1en voz alta se quejaGREP_OPTIONSen cada invocación:grep: warning: GREP_OPTIONS is deprecated; please use an alias or script