De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

bash - redirecionamento de mensagens

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 22 de maio de 2018

As saídas geradas por um programa podem se enquadrar em três categorias:

  • Entrada padrão (Standard input ou stdin): estes são os dados que o programa irá processar;
  • Saída padrão (Standard output ou stdout): o resultado da execução do programa;
  • Erros (Standard Error ou stderr): erros gerados durante a execução do programa.

Por definição, os erros (stderr) e a saída gerada pelo programa (stdout) são enviados para a tela do computador.

Nós podemos direcionar as saídas geradas pelo computador (stdout e stderr) para diferentes arquivos.

  • 2>: redireciona as mensagens de erro para um arquivo. stderr é identificado pelo número 2.

    find /proc 2> erros.log 

  • &>: Redirecionamento para arquivo tanto da saída padrão quando dos erros:

    find /proc &> saida_e_erros.log

A saída padrão, identificada pelo número 1 é o default, podemos ou não especificar:

find /proc > saida.log

ou

find /proc 1> saida.log

Veja só, o diretório /proc contém arquivos que usuários comuns não podem visualizar. O comando find /proc &> saida_e_erros.log gerará mensagens de erro intercaladas com mensagens normais:

$ find /proc &> saida_e_erros.log
/proc/tty/ldisc
/proc/tty/driver
find: `/proc/tty/driver': Permission denied
/proc/tty/ldiscs

Podemos ainda direcionar a saída padrão para um arquivo e os erros para um outro arquivo:

$ find /proc 1> saida.log 2> erros.log 

Resumo

Comando Descrição
comando 2>filename Redireciona os erros para arquivo.err
comando > saida.txt Redireciona a saída padrão para saida.txt
comando &> saida_e_erros.log Redireciona a saída padrão e os erros para o mesmo arquivo (saida_e_erros.log)
comando 2>&- saida.log Suprime a exibição de mensagens de erro. Útil quando as mensagens de erro não nos interessam
comando 2>&1 saida.log Envia todas as mensagens de erro para a tela e a saída do comando para o arquivo saida.log. Útil em shell scripts quando precisamos enviar os erros para a tela

Fonte: How to redirect standard error in bash

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida