Cada processo no Linux produz três fluxos de dados, stdin, stdout e stderr:
- Stdin : Recebe a entrada do usuário por meio do 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 o redirecionamento um pouco mais detalhadamente:
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.txtO comando acima criará um arquivo e colocará a saída padrão do comando ls no arquivo stdout.txt.
Para ler o arquivo stdout.txt, use:
$gatostdout.txt
Também podemos redirecionar o erro padrão para um arquivo usando o comando:
$gatomeuarquivo.txt2>stderr.txt
Para visualizar o arquivo stderr.txt, use:
$gatostderr.txt
Certifique-se de que o uso 2 seja maior do que o sinal>. Como não há nenhum arquivo myfile.txt no diretório, o comando cat fornecerá um erro que será anexado ao arquivo stderr.txt.
Essas saídas padrão também podem ser redirecionadas com um único comando, use:
$ls 1>stdout.txt2>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 para stderr.txt:
$gatomeuarquivo.txt1>stdout.txt2>stderr.txt
Use o comando mencionado abaixo para ler stderr.txt.
$gatostderr.txt
E, claro, stdout.txt estará vazio.
Conclusão :
O comando Linux ao ser executado fornece uma 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 como usar essas teclas numéricas para redirecionar a saída padrão para um arquivo com exemplos.