Como usar os fluxos stdin, stderr e stdout em bash

Como usar os fluxos stdin, stderr e stdout em bash

Três fluxos são abertos quando o sistema operacional Linux é iniciado. Estes são stdin, stdout e stderr. A forma completa do stdin é a entrada padrão que é usada para obter uma entrada do usuário. A forma completa de stdout é a saída padrão que é usada para armazenar a saída do comando no fluxo stdout. A forma completa do stderr é o erro padrão usado para armazenar a mensagem de erro gerada de qualquer comando para o fluxo de dados. Os usos desses fluxos são mostrados neste tutorial. Os valores de identificador numérico correspondentes de stdin, stdout e stderr são 0, 1 e 2.

Operadores de redirecionamento de stdin, stdout e stderr

    • O "<” or “0<” is used for the stdin stream.
    • O ">" ou "1>" é usado para o fluxo de stdout.
    • O "2" é usado para o fluxo Stderr.

Usos de stdin, stdout e stderr

Os usos de stdin, stdout e stderr são mostrados nesta parte do tutorial usando vários exemplos.

Exemplo 1: Uso de stdin

O método de pegar o conteúdo de um arquivo e imprimi -lo no terminal é mostrado neste exemplo.

Execute o seguinte comando "CAT" para criar um arquivo de texto chamado testdata.txt com algum conteúdo:

$ cat> testData.TXT


Execute o seguinte comando “CAT” para anexar algum conteúdo no TestData.Arquivo TXT:

$ cat >> testData.TXT


Execute o seguinte comando "CAT" para obter uma entrada do TestData.Arquivo TXT e imprima -o no terminal:

$ cat < testdata.txt


Saída:

A saída a seguir aparece após a execução dos comandos anteriores após adicionar a string, “Linuxhint.com ”e“ linguagem de script ”no testdata.Arquivo TXT:


Exemplo 2: Uso de stdout

O método de criar um arquivo usando o tubo (|) e o operador de redirecionamento é mostrado neste exemplo.

Execute o seguinte comando para escrever uma string dados no arquivo de texto chamado testData2.txt por tubulação. A saída do comando "Echo" é enviada para a entrada do comando "CAT" usando o operador do tubo (|):

$ eco "Learn Bash Programming" | Cat> testData2.TXT


Execute o seguinte comando “CAT” para verificar o conteúdo do TestData2.Arquivo TXT:

$ CAT TestData2.TXT


Saída:

A saída a seguir aparece após a execução dos comandos anteriores. De acordo com a saída, a saída do comando "Echo" é gravada no testData2.Arquivo TXT:


Execute o seguinte comando para escrever a saída do comando "ls -l" em uma lista de arquivo de texto nomeado.txt usando o operador de redirecionamento ('>'):

$ ls -l> lista.TXT


Execute o seguinte comando "CAT" para verificar o conteúdo da lista.Arquivo TXT:

$ CAT LIST.TXT


Saída:

A saída a seguir aparece após a execução dos comandos anteriores. De acordo com a saída, a saída do comando "LS -L" é escrita na lista.Arquivo TXT:


Exemplo 3: Uso de stdin e stdout

O método de usar o stdin e o stdout para obter uma entrada de um arquivo e escrevê -lo em um arquivo é mostrado neste exemplo.

Execute o seguinte comando "CAT" para levar o conteúdo do TestData.Arquivo TXT e escreva -o no arquivo de testes.Arquivo TXT e o terminal:

$ cat < testdata.txt > TestFile.TXT


Execute o seguinte comando “CAT” para imprimir o conteúdo do TestData.Arquivo TXT:

$ CAT TestData.TXT


Execute o seguinte comando “CAT” para imprimir o conteúdo do arquivo de testes.Arquivo TXT:

$ CAT TestFile.TXT


Saída:

A saída a seguir aparece após a execução dos comandos anteriores. De acordo com a saída, o conteúdo do TestData.O arquivo txt está escrito no arquivo de teste.Arquivo TXT e impresso no terminal:


Exemplo 4: Uso de Stderr

O conteúdo do erro padrão pode ser impresso no terminal ou redirecionado para um arquivo ou enviado para o /dev /nulo que funciona como a lixeira de reciclagem. As diferentes maneiras de passar o erro padrão são mostradas neste exemplo.

O comando a seguir é válido e imprime a string "Hello" com a nova linha. Portanto, nenhum erro padrão é gerado para o seguinte comando:

$ printf "%s \ n" "Olá"


O comando a seguir é inválido porque não há comando chamado "pirntf". Portanto, um erro padrão é gerado e o erro é impresso no terminal:

$ pirntf "%s \ n" "Olá"


Saída:

A saída a seguir aparece após a execução do comando anterior. De acordo com a saída, o erro padrão é impresso no terminal:


Às vezes, requer imprimir o erro personalizado, ocultando o erro padrão para tornar o erro mais compreensível para os usuários. Esta tarefa pode ser realizada redirecionando o erro para o /dev /null. O "2>" é usado aqui para redirecionar o erro para /dev /null.

Execute o seguinte comando para redirecionar o erro para o /dev /null, que não exibirá nenhum erro se houver algum erro:

$ pirntf "%s \ n" "hello" 2> /dev /null


Saída:

A saída a seguir aparece após a execução do comando anterior. De acordo com a saída, o erro padrão não é impresso no terminal para redirecionar para /dev /null:


Às vezes, o erro padrão requer armazenar um arquivo para uso futuro. Esta tarefa pode ser realizada redirecionando o erro para um arquivo usando o operador "2>".

Execute o seguinte comando para redirecionar o erro padrão para um arquivo chamado Errorfile.TXT:

$ pirntf "%s \ n" "Hello" 2> Errorfile.TXT


Execute o seguinte comando para verificar o conteúdo do arquivo de erro.Arquivo TXT:

$ CAT ERRORFILE.TXT


Saída:

A saída a seguir aparece após a execução dos comandos anteriores. De acordo com a saída, o erro padrão é gravado corretamente no arquivo de erro.Arquivo TXT:


O erro padrão pode ser redirecionado para ambos /dev /nulo e o arquivo de erro.Arquivo TXT usando o seguinte comando:

$ pirntf "%s \ n" "Hello" 2> /dev /null> Errorfile.TXT

Conclusão

Os usos de stdin, stdout e stderr são explicados neste tutorial usando vários exemplos que ajudarão os usuários do Linux a entender o conceito desses fluxos e usá -los corretamente quando necessário.