Por que as cores não aparecem (caracteres de controle) ao direcionar stdout / stderr em sistemas * nix?

0

Por que as cores não aparecem (caracteres de controle) ao direcionar stdout / stderr em sistemas * nix?

Quando faço:

foo | bar

se foo escrever strings codificadas por cor (com chars de controle) para stdout, elas não serão exibidas na barra - existe uma maneira de fazer com que elas apareçam?

    
por Alexander Mills 14.10.2017 / 07:50

1 resposta

1

Why do colors not show up (control characters) when piping stdout/stderr on *nix systems?

Como comentado por jimij , eles aparecem.

No entanto, alguns programas (provavelmente a maioria dos programas que emitem código de escape ANSI s) estão detectando que sua saída não é um tty usando isatty (3) por exemplo como isatty(STDOUT_FILENO) ; e isso é uma boa característica, porque lidar com fugas em pipelines quando você não as quer é uma dor.

Vários programas documentam uma maneira de forçar isso, por exemplo ls (1) tem --color=always

Leia a documentação dos comandos relevantes.

    
por 14.10.2017 / 08:21