Si grep o
produce salida de color, entonces grep
es un alias para grep --color=auto
o grep --color=always
(o posiblemente más opciones), o GREP_OPTIONS
se establece en un valor que contiene --color=auto
o --color=always
. Como $GREP_OPTIONS
está vacío, debe ser el alias.
Como grep o | less -R
no muestra colores, el alias debe ser grep --color=auto
(una elección sensata). Con el alias, el grep
comando siempre recibe la --color
opció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_OPTIONS
un valor diferente solo anula el último;
- el alias solo se activa cuando se ejecuta
grep
desde un shell interactivo, mientras que la configuración GREP_OPTIONS
también se aplica cuando grep
se ejecuta desde scripts y otras aplicaciones.
Nunca ponga --color=always
ni la mayoría de las otras opciones en GREP_OPTIONS
: rompería muchos programas que analizan la salida de grep
. --color=auto
es 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 \grep
lugar de grep
(citando cualquier parte del nombre omite la búsqueda de alias).
grep v3.1
en voz alta se quejaGREP_OPTIONS
en cada invocación:grep: warning: GREP_OPTIONS is deprecated; please use an alias or script