1
ps -e | grep bash

Пример вывода с машины Linux:

1128 pts/14   00:00:00 bash
7491 pts/7    00:00:00 bash
12651 pts/14   00:00:00 bash
16145 pts/2    00:00:00 bash

Пример вывода с компьютера Mac:

58352 ttys000    0:00.09 login -pfl username /bin/bash -c exec -la bash /bin/bash
58353 ttys000    0:00.02 -bash
58390 ttys000    0:00.00 grep bash
20372 ttys005    0:00.06 login -pfl username /bin/bash -c exec -la bash /bin/bash
20373 ttys005    0:00.18 -bash

Мой вопрос заключается в том, почему мы видим "grep bash" во втором случае, а не в первом.

2 ответа2

1

Я не могу сейчас воспроизвести поведение Mac OS X - скорее всего, оно связано с деталями планирования процессов в ОС и может зависеть от времени и количества процессоров.

$ ps -e | grep bash
86880 ttys000    0:00.18 -bash
87718 ttys000    0:00.00 (bash)

Как правило, OS X предоставляет в основном программы командной строки BSD, а дистрибутивы Linux предлагают варианты GNU. Это (в основном) совместимые реализации одних и тех же базовых инструментов, но они будут вести себя по-разному, часто с разными функциями и аргументами.

Учитывая, что используемые программы (или версии в тех случаях, когда они на самом деле одинаковы) настолько различны, я не думаю, что можно определить, что вызывает появление grep bash в вашей системе.

1

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

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