Команды в конвейере выполняются параллельно. Все они запускаются одновременно и работают одновременно. Правый процесс получает вывод левого процесса по мере его генерирования. Не нужно ждать окончания левого процесса.
Обычно с каналом связан небольшой буфер, скажем, 4 КБ. Обработка обычно происходит в чанках размером 4 КБ, а не построчно. * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *. программы должны выполняться параллельно, тогда вам нужно будет выполнить их отдельно и сохранить их выходные данные во временных файлах.
command1 > cmd1.out
command2 < cmd1.out > cmd2.out
command3 < cmd2.out
rm cmd1.out cmd2.out