2
[root@myvm1 ~]# ps aux | grep ls
root     13594  0.0  0.1   3912   672 pts/1    R+   09:46   0:00 grep ls

В приведенном выше примере сначала выполняется ps aux а затем его выходные данные перенаправляются в команду grep ls . Команда grep ls выполняется после ps aux .

Так почему же ps может знать о процессе, который запускается после него и имеет его на выходе?

1 ответ1

4

В приведенном выше примере сначала выполняется ps aux а затем его выходные данные перенаправляются в команду grep ls . Команда grep ls выполняется после ps aux .

Так почему же ps может знать о процессе, который запускается после него и имеет его на выходе?

Вы пишете о логическом порядке последовательности команд.

Если вы получите представление о процедурах bash, вы узнаете, что обе команды и структура трубопровода могут быть созданы в порядке, который на самом деле не имеет значения.

Более того, структура трубопровода, скорее всего, является перенаправлением вывода команды.

Ваш ответ: команда ps запускается фактически после того, как был создан процесс, который запустит grep .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .