Na nossa lição anterior, aprendemos sobre o redirecionamento do fluxo de saída padrão (stdout). Da mesma forma, também podemos gerenciar o fluxo de entrada padrão (stdin). Por padrão, um programa recebe seu stdin do teclado, mas também podemos usar arquivos ou a saída de outros processos como fonte de entrada.
Entendendo stdin e stdout
Todo processo de linha de comando no Linux opera com pelo menos dois fluxos de dados fundamentais: entrada padrão (stdin) e saída padrão (stdout). Um programa lê dados de stdin e escreve seus resultados em stdout. Entender como controlar ambos, stdin e stdout, é crucial para um trabalho eficaz na linha de comando.
Como Redirecionar stdin
Assim como usamos > para redirecionamento de stdout, usamos o operador < para redirecionar stdin. Este recurso poderoso permite que você diga a um comando para ler sua entrada de um arquivo em vez de esperar que você a digite no teclado. Este é um conceito central do redirecionamento de entrada.
Exemplo Prático com cat stdin
Vamos revisitar o arquivo peanuts.txt da lição anterior, que contém o texto "Hello World". Considere o seguinte comando:
cat < peanuts.txt > banana.txt
Aqui está uma análise do que acontece:
- A parte
< peanuts.txtdiz ao shell pararedirecionar stdinpara o comandocat, fazendo com que ele leia depeanuts.txtem vez do teclado. - O comando
catprocessa sua entrada. Neste caso, usarcat stdinsignifica que ele lê o conteúdo depeanuts.txt. - A parte
> banana.txtredireciona a saída padrão docatpara um novo arquivo chamadobanana.txt.
Em última análise, o conteúdo de peanuts.txt é copiado para banana.txt. Este exemplo demonstra efetivamente como gerenciar tanto stdin quanto stdout em um único comando eficiente.