Redirecionando o stderr usando o comando tee no ubuntu

Redirecionando o stderr usando o comando tee no ubuntu

O comando tee pega a entrada padrão e o envia para um ou mais arquivos e a saída padrão. O comando tee é derivado do tocador t-splitter. Ele simplesmente divide a saída de um programa para que ele possa ser mostrado e salvo em um arquivo. Ele executa ambos os trabalhos simultaneamente, copia a saída para os arquivos ou variáveis ​​fornecidos e exibe a saída.

Sintaxe:

$ tee [options] [arquivo]

Opções:

  • -a: Anexe (em vez de substituir os arquivos, anexá -los aos existentes)
  • -eu: ignorar interrupções (ignore os sinais que interrompem)

Arquivos: Existem vários arquivos. Os dados de saída são gravados para cada um deles.

O descritor de arquivo padrão para o processo de gravação de mensagens de erro é Stderr, geralmente conhecido como erro padrão. Erros padrão podem ser encaminhados para a linha de comando em Bash. Este artigo trata de redirecionar a saída do stderr usando o comando tee em diferentes cenários.

Redirecionar stderr usando o comando tee

Erros padrão são encaminhados para a linha de comando em bash. Redirecionar o Stderr pode permitir que você capture mensagens de erro em um arquivo de log distinto ou eliminar completamente as mensagens de erro. Explicaremos o procedimento para redirecionar o stderr usando o comando tee com os seguintes exemplos.

Etapa 1: Crie um arquivo Bash

Primeiro, crie um arquivo Bash “Linux.SH ”usando o seguinte comando:

$ nano linux.sh

Etapa 2: Escreva o código

Agora, escreva o código a seguir no arquivo ou você pode escrever outra coisa de acordo com o seu requisito:

$ #!/BIN/BASH
eco Olá
1> & 2 Echo World

Etapa 3: verifique se o arquivo bash está funcionando

Agora, verifique se o arquivo Bash está funcionando corretamente ou se o código escrito está correto executando o seguinte comando no terminal:

$ ./Linux.sh

O resultado fornecido gera o resultado correto, o que prova que o código está funcionando corretamente.

Execute outro comando mencionado abaixo para verificar o código de trabalho:

$ ./Linux.sh>/dev/null

Agora, execute o seguinte comando para verificar o funcionamento do código:

$ ./Linux.sh 2>/dev/null

Temos a saída esperada; Isso significa que o código está correto.

Etapa 4: redirecionar o stderr para o comando tee

O> (…) (substituição do processo) estabelece um FIFO e o disponibiliza ao tee para ouvir. Em seguida, ele emprega> (redirecionamento de arquivos) para enviar o stdout do comando para o FIFO de que sua primeira camiseta está monitorando.

O seguinte comando redireciona Stderr para o tee. Ele redireciona a saída para "/tmp/log":

$ ./Linux.sh 2 >> (tee /tmp /log)

Agora, produza o arquivo para o qual redirecionamos a saída.

$ cat /tmp /log

Por padrão, tee impressa em stdout. Imprima isso para Stderr.

$ (./Linux.sh 2 >> (tee/tmp/log> & 2))>/dev/null

Conclusão

O comando tee lê os dados de um arquivo de entrada/arquivos e grava a saída recebida em muitos arquivos. Redirecionar erros para Stderr pode ser feito com a ajuda do comando tee. Existem muitas maneiras de redirecionar a saída. Mas neste artigo, descrevemos um procedimento, com a ajuda de um exemplo, para redirecionar o Stderr para o tee usando um arquivo bash e exibir a saída no Ubuntu (Sistema Operacional Linux). Você achará este artigo útil para redirecionar o stderr usando o comando tee.