Dicar Bash Script ::: Como redirecionar a saída de erro

Fonte: http://douglascunha.com/blog/2009/01/como-redirecionar-a-saida-de-erro-stderr-para-stdout-ou-arquivo/

———————————————————————————————–

Situação normal no Linux é executar um comando direcionando sua saída para um arquivo (ou outro comando, como less) e ver que os erros não são direcionados corretamente, embora apareçam na tela. Por que isso acontece e como resolver?

stdin, stdout e stderr
Existem três streams de dados padrão em todo ambiente Linux:

stdin
Entrada padrão de dados para o programa
stdout
Saída padrão de dados do programa
stderr
Saída padrão de erro
Os programas recebem dados na stdin toda vez que você direciona algo para ele usando o pipe (comando | outro_comando) ou direciona o conteúdo de um arquivo (comando ” apenas a stdout é direcionada, a strerr continua indo para a tela. Para modificar esse fluxo, podem ser usados os artifícios abaixo:

Ação Comando
Redirecionar saída (stdout) para arquivo comando > saida.txt
Redirecionar stderr para stdout comando 2>&1
Redirecionar stderr para stdout e então para arquivo comando 2>&1 > saida.txt
Redirecionar stderr e stdout direto para arquivo comando &> arquivo.txt

Esse tipo de redirecionamento pode ser particularmente útil em scripts que rodam no cron, em que a saída stdout é direcionada para /dev/null mas stdout continua indo para o e-mail do administrador.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s