A maioria dos comandos pode lidar com a entrada que é um arquivo que eles precisam abrir para entrada, ou como um fluxo de dados que é passado para o comando via STDIN.
Quando o conteúdo de cat file.txt
é enviado para outro comando através de um pipe ( |
), a saída via STDOUT que é passada para o pipe no lado esquerdo, é configurada e alimentada para o comando que está no lado direito do STDIN do tubo.
Se o conteúdo não estiver sendo transmitido via STDOUT - > STDIN via pipe, então os comandos podem receber dados abrindo arquivos que são passados pelo nome via argumentos de linha de comando.
Exemplos
Envia a saída para STDOUT.
$ cat file
1
2
3
4
5
A saída de cat file
é enviada via STDOUT para STDIN de grep
através do pipe.
$ cat file | grep 5
5
Processando o arquivo como um argumento de linha de comando.
$ grep 5 file
5
Processando o conteúdo do arquivo via STDIN diretamente.
$ grep 5 < <(cat file)
5
Aqui estou demonstrando que o conteúdo de file
pode ser direcionado para grep
via STDIN acima.