Se grep o
produzir saída em cores, então grep
será um alias para grep --color=auto
ou grep --color=always
(ou possivelmente mais opções) ou GREP_OPTIONS
será definido como um valor que contenha --color=auto
ou% código%. Como --color=always
está vazio, deve ser o alias.
Como $GREP_OPTIONS
não mostra cores, o alias deve ser grep o | less -R
(uma escolha sensata). Com o alias, o comando grep --color=auto
sempre recebe a opção grep
na linha de comando, e isso tem precedência sobre a variável de ambiente.
Se você quiser usar a variável de ambiente, remova a definição de alias de seu --color
ou, para uma sessão, execute ~/.bashrc
. Você pode substituir unalias grep
por alias grep='grep --color=auto'
: eles têm essencialmente o mesmo significado, exceto que:
- definir
export GREP_OPTIONS='--color=auto'
como um valor diferente apenas substitui o último; - o alias só entra em ação quando você executa
GREP_OPTIONS
de um shell interativo, enquanto a configuraçãogrep
também se aplica quandoGREP_OPTIONS
é executado a partir de scripts e outros aplicativos.
Nunca coloque grep
ou a maioria das outras opções em --color=always
: isso quebraria muitos programas que analisam a saída de GREP_OPTIONS
. grep
é a única opção segura para colocar em --color=auto
. Para qualquer outra coisa, use o alias. Futuras versões do GNU grep derrubarão o suporte para a opção por este motivo.
Observe que a definição de alias entra em GREP_OPTIONS
(é uma configuração de shell), enquanto a definição de variável de ambiente entra em ~/.bashrc
(é uma configuração de sessão). Veja Existe um arquivo equivalente ".bashrc" lido por todos os shells?
Se você deseja executar o comando unaliased apenas uma vez, execute ~/.profile
em vez de \grep
(a citação de qualquer parte do nome ignora a pesquisa de alias).