Se grep oproduz saída colorida, grepé um alias para grep --color=autoou grep --color=always(ou possivelmente mais opções) ou GREP_OPTIONSé definido como um valor que contém --color=autoou --color=always. Como $GREP_OPTIONSestá vazio, deve ser o alias.
Como grep o | less -Rnão mostra cores, o alias deve ser grep --color=auto(uma escolha sensata). Com o alias, o grepcomando sempre recebe a --coloropçã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_OPTIONSum valor diferente somente substitui o último;
- o alias só entra em ação quando você executa a
greppartir de um shell interativo, enquanto a configuração GREP_OPTIONStambém se aplica quando grepé executada a partir de scripts e outros aplicativos.
Nunca coloque --color=alwaysou 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 \grepvez de grep(citar qualquer parte do nome ignora a pesquisa de alias).
grep v3.1reclama em voz alta deGREP_OPTIONStodas as invocações:grep: warning: GREP_OPTIONS is deprecated; please use an alias or script