Programas que detectam o pipe em sua saída para desabilitar a coloração

3

Alguns programas têm uma saída colorida (como grep ou emerge no meu sistema gentoo), mas se sua saída é canalizada, em less por exemplo ou em um arquivo, a saída colorida é desabilitada.

No entanto, sei less é capaz de exibir saída colorida, como comandos como

ccze -A < /var/log/emerge.log | less

exiba texto colorido. Então eu tenho duas perguntas aqui:

  • É possível "enganar" outros programas de saída coloridos para manter a coloração?
    Eu gostaria de manter as cores se eu fizer, por exemplo:

    emerge -puND world | less
    
  • Como esses programas detectam que sua saída é redirecionada?

por Levans 14.09.2013 / 15:01

1 resposta

3

De stackoverflow - na detecção de tty :

Most commands that do print out those color codes explicitly check if stdout/stderr is a tty (using the isatty command).

De stackoverflow - na captura de saída colorida :

One way to capture colorized output is with the script command. Running script will start a bash session where all of the raw output is captured to a file (named typescript by default).

Veja man script para mais informações.

    
por 14.09.2013 / 15:14

Tags