Como posso imprimir o erro padrão em vermelho no console em vez de usar a mesma cor da saída padrão?
É possível usar o Gnome Terminal ?
gnome-terminal
Aslan986
fonte
fonte
hilite
utilitário . Você precisa anexar manualmentehilite
ao seu comando shell para usá-lo, mas ainda é útil se você souber ou suspeitar que um comando gera erros e deseja localizá-los.Respostas:
Eu uso o stderred e achei uma boa solução. Como seu leia-me observa:
É fácil compilar, mas você precisa compilá-lo a partir do código-fonte, seguindo as instruções no site do Github :
Então
Então
A parte mais importante é adicionar a linha apropriada ao seu
.bashrc
; você deve vincular aolibstderred.so
arquivo no diretório de construção; você deve usar o caminho absoluto em que o diretório de construção está (/ home / mike / src / stderred / build). Eu adiciono o seguinte ao meu.bashrc
:Obviamente, quando você não quiser mais usá-lo, remova a linha acima
.bashrc
e reinicie o terminal.Os resultados, testados em arquivos inexistentes (obviamente não funcionarão quando
sudo
forem utilizados, pois o usuário.bashrc
não será lido quando o ambiente diferente estiver definido):(Aliás, o prompt do duke @ nukem não fica vermelho, pois já era vermelho )
fonte
Em geral, sim, já que o Gnome Terminal é um terminal ANSI e suporta os códigos de escape ANSI padrão.
Aqui está um exemplo. Digite isso no seu terminal:
A
-e
opção permite interpretar códigos de barra invertida,\e
tornando-se "Esc" (código hexadecimal 0x1B). Como alternativa, para inserir escape diretamente, pressione ctrl-V Esc:Escape e
[
ambos formam juntos o código que é reconhecido pelo terminal. Após essa sequência, é necessário inserir uma;
lista de atributos separados por dois pontos ( ), finalizados porm
. Veja aqui todos os códigos. Os exemplos incluem atributo0
(redefina todos os atributos, como você pode observar acima, que é a sequência que encerra o meu exemplo) e vários estilos (sublinhado, brilhante, negrito etc.), além de alguns atributos de cores.A resposta acima mostra como usar cores quando você escreve seu próprio programa.
No entanto, se eu entendi sua pergunta corretamente, você gostaria de ter uma separação visual para stderr e stdout de todos os programas em execução. Isso não é simples sem analisar sua saída através de um filtro. Aqui está um exemplo (encontrado aqui ) de como fazer:
Defina uma função (você pode colocá-la no seu arquivo .bashrc):
Inicie programas como este:
O stderr dos programas ficará vermelho.
fonte