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_OPTIONSde um shell interativo, enquanto a configuraçãogreptambé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).