![cover image](https://wikiwandv2-19431.kxcdn.com/_next/image?url=https://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Process_output_chaining_via_pipes.ru.svg/langru-640px-Process_output_chaining_via_pipes.ru.svg.png&w=640&q=50)
Конвейер (Unix)
Материал из Википедии — свободной encyclopedia
У этого термина существуют и другие значения, см. Конвейер (значения).
Конвейер (англ. pipeline) в терминологии операционных систем семейства Unix — некоторое множество процессов, для которых выполнено следующее перенаправление ввода-вывода: то, что выводит на поток стандартного вывода предыдущий процесс, попадает в поток стандартного ввода следующего процесса. Запуск конвейера реализован с помощью системного вызова pipe()
.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Process_output_chaining_via_pipes.ru.svg/320px-Process_output_chaining_via_pipes.ru.svg.png)
Код возврата конвейера равен коду возврата последней команды. В bash можно изменить это поведение, включив опцию pipefail:
set -o pipefail
после чего конвейер вернёт ноль, если все команды завершились удачно, или код первой из команд в конвейере, вернувшей не ноль.
Пример запуска конвейера:
$ ps aux | grep [k]de | gawk '{ print $2}'
Данная команда выведет номера процессов, в названии которых встречается подстрока «kde»
![]() | В статье не хватает ссылок на источники (см. рекомендации по поиску). |