Como redirecionar Stderr para stdout em Bash

Como redirecionar Stderr para stdout em Bash
Os comandos no Linux recebem alguma entrada do usuário, o que pode ser um arquivo ou qualquer atributo e, ao executar, eles fornecem alguma saída chamada saída padrão. A saída padrão pode ser uma saída de sucesso ou uma saída de erro; Ambos serão exibidos na tela do seu terminal. Mas, em alguns casos, você deseja armazenar saídas padrão em um arquivo para teste ou depuração do código. No Linux, essas saídas podem ser redirecionadas para um arquivo, e o processo de capturá -lo chamado redirecionamento.

Todo processo do Linux produz três fluxos de dados, "Stdin", "stdout" e "stderr":

  • stdin: Receita a entrada do usuário via teclado
  • stdout: Exibe a saída na tela
  • stderr: Mostra informações de erro na tela

Cada fluxo de dados tem um ID numérico:

ID numérico Nome
0 stdin
1 stdout
2 stderr

Vamos explicar um pouco mais de redirecionamento com detalhes:

Como redirecionar a saída padrão e o erro padrão no bash:

Para redirecionar a saída padrão do comando, usaremos "1" com um operador de redirecionamento maior que o sinal ">":

$ ls 1> stdout.TXT

O comando acima criará um arquivo e colocará a saída padrão do comando "LS" no "stdout.arquivo txt ”.

Para ler o “stdout.arquivo txt ”, use:

$ gat stdout.TXT

Podemos redirecionar o erro padrão para um arquivo também usando o comando:

$ Cat MyFile.txt 2> stderr.TXT

Para ver o “stderr.arquivo txt ”, use:

$ gat stderr.TXT

Certifique -se de usar "2" maior que o sinal ">". Já que não há “myfile.Arquivo TXT ”no diretório, o comando“ CAT ”dará um erro que será anexado no“ stderr.arquivo txt ”.

Essas saídas padrão também podem ser redirecionadas com um único comando, use:

$ ls 1> stdout.txt 2> stderr.TXT

A saída do comando "LS" será escrita no "stdout.TXT"Arquivo, mas o"stderr.TXT”Permanecerá vazio porque não haveria erro.

Agora vamos fazer por "stderr.TXT":

$ Cat MyFile.txt 1> stdout.txt 2> stderr.TXT

Use o comando abaixo mencionado para ler “Stderr.TXT.”

$ gat stderr.TXT

E, claro, “stdout.txt ”estará vazio.

Conclusão:

O comando Linux após a execução fornece saída padrão que pode ser uma saída de sucesso ou uma saída de erro. Geralmente, essas saídas não podem ser redirecionadas usando operadores de redirecionamento; Precisamos usar IDs numéricos específicos com o sinal ">". Neste guia, aprendemos a usar essas teclas numéricas para redirecionar a saída padrão para um arquivo com exemplos.