Se grep o
produz saída colorida, grep
é um alias para grep --color=auto
ou grep --color=always
(ou possivelmente mais opções) ou GREP_OPTIONS
é definido como um valor que contém --color=auto
ou --color=always
. Como $GREP_OPTIONS
está vazio, deve ser o alias.
Como grep o | less -R
não mostra cores, o alias deve ser grep --color=auto
(uma escolha sensata). Com o alias, o grep
comando sempre recebe a --color
opção na linha de comando, e isso tem precedência sobre a variável de ambiente.
Se você deseja usar a variável de ambiente, remova a definição de alias da sua ~/.bashrc
, ou para uma execução de sessão unalias grep
. Você pode substituir alias grep='grep --color=auto'
por export GREP_OPTIONS='--color=auto'
: eles têm essencialmente o mesmo significado, exceto que:
- definir
GREP_OPTIONS
um valor diferente somente substitui o último;
- o alias só entra em ação quando você executa a
grep
partir de um shell interativo, enquanto a configuração GREP_OPTIONS
também se aplica quando grep
é executada a partir de scripts e outros aplicativos.
Nunca coloque --color=always
ou a maioria das outras opções GREP_OPTIONS
: isso interromperia muitos programas que analisam a saída de grep
. --color=auto
é a única opção segura a ser adotada GREP_OPTIONS
. Para qualquer outra coisa, use o alias. Versões futuras do GNU grep deixarão o suporte para a opção por esse motivo.
Observe que a definição de alias entra ~/.bashrc
(é uma configuração de shell), enquanto a definição de variável de ambiente entra ~/.profile
(é uma configuração de sessão). Consulte Existe um arquivo equivalente ".bashrc" lido por todos os shells?
Se você deseja executar o comando sem serrilhado apenas uma vez, execute em \grep
vez de grep
(citar qualquer parte do nome ignora a pesquisa de alias).
grep v3.1
reclama em voz alta deGREP_OPTIONS
todas as invocações:grep: warning: GREP_OPTIONS is deprecated; please use an alias or script