Saída colorida do script Bash

4

Estou executando grep dentro de um script bash. Se eu executar o comando grep diretamente, vejo a saída colorida do nome do arquivo e da string de pesquisa:

grep -i username /tmp/sess_*

Se eu colocar esse comando em um script bash, ele funcionará, mas as cores serão perdidas. Como posso preservar a saída colorida?

    
por Sonny 08.01.2016 / 16:06

1 resposta

5

Você pode adicionar --color=always ao seu grep.

Seção relevante da minha página de manual local:

  --color[=WHEN], --colour[=WHEN]
          Surround  the  matched  (non-empty)  strings,  matching   lines,
          context  lines,  file  names,  line  numbers,  byte offsets, and
          separators (for fields and groups of context lines) with  escape
          sequences  to display them in color on the terminal.  The colors
          are  defined  by  the  environment  variable  GREP_COLORS.   The
          deprecated  environment  variable GREP_COLOR is still supported,
          but its setting does not have priority.  WHEN is never,  always,
          or auto.

Como esta pergunta no SO sugere, provavelmente você tem um alias para grep que mapeia para grep --color=auto no seu .bashrc e que não é lido pelo script e, portanto, não é aplicado no script.

    
por 08.01.2016 / 16:08