Что делает '|' (вертикальная полоса) в команде терминала? [Дубликат]

10

Пример: в команде терминала

xdpyinfo | grep resolution
(что я взял из ответа), означает ли символ
|
, что выход
xdpyinfo
должен быть отправлен на вход программы grep для печати строки, содержащей строку
resolution
? Где я должен искать такую ​​информацию, чтобы не заполнять этот форум слишком простыми вопросами? Благодарю.     
задан Tomáš Pečený 23.09.2013 в 12:39
источник

4 ответа

13

Вертикальная черта | обычно называется «трубой». Он используется для соединения одной команды в другую. То есть, он направляет вывод от первой команды на вход для второй команды. Поэтому ваше объяснение довольно точное.

    
ответ дан dan08 23.09.2013 в 12:48
источник
8

Он называется pipe (или pipeline ), и это означает, что вывод команды перед ним производится как вход в команду позади него.

Пример:

dmesg | tail
bash --version | tac

Приветствуется, чтобы попробовать команду без канала.

И да, вы правы: в этом случае команда xdpyinfo показывает информацию, и она анализируется на grep . grep фильтрует результаты и отображает только строки, в которых resolution .

Дополнительная информация о pipe :

ответ дан Rinzwind 23.09.2013 в 12:48
1

Ваша интерпретация верна. | символ передает вывод первой команды во входной поток второй. Две команды фактически выполняются параллельно, как два параллельных процесса. Это иллюстрация «парадигмы труб и фильтров» (создание сложных функций путем конвейерной обработки простых), что является отличительной чертой Unix.

Для получения дополнительной информации об этом, я предлагаю вам ознакомиться с некоторыми учебными пособиями по сценариям bash или shell. Их много. Бьюсь об заклад, вы будете удивлены элегантностью и мощью оболочек Unix / GNU.

    
ответ дан zwets 23.09.2013 в 13:03
1

Символ | иногда называется трубой и используется для подключения вывода из одной команды и подачи его в другой.

Так, чтобы xdpyinfo | grep resolution сначала выполняла команду xdpyinfo (утилита, которая отображает информацию о X) без отображения какого-либо вывода. Вывод этой команды подается в grep (парсер регулярных выражений), чтобы найти записи, содержащие разрешение.

То, что вы видите, это просто информация, которую вы хотите, а не полный вывод команды xdpyinfo .

    
ответ дан Warren Hill 23.09.2013 в 12:48