1

Когда я использую команды «ps», «egrep» и «wc» для подсчета количества процессов, это дает мне неправильное значение. Я запускаю команду на машине 'Solaris 9' . Пожалуйста, помогите в понимании проблемы.

MyServer $ ps -fu root | egrep -v 'bash|ksh|ssh|ef|mailx|nohup|defunct|ps|sh|FND'
     UID   PID  PPID  C    STIME TTY      TIME CMD
 root 16267 16171  0   Jan 28 ?        0:18 xyz
 root 16269 16171  0   Jan 28 ?        0:07 abc
 root 16268 16171  0   Jan 28 ?        0:07 ghi
MyServer $

Только 4 (3 процесса + заголовок) строки показаны в выводе. Но когда я использую приведенную ниже команду, она возвращает вывод как 5

MyServer $ ps -fu root | egrep -v 'bash|ksh|ssh|ef|mailx|nohup|defunct|ps|sh|FND' | wc -l
       5

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

MyServer $ ps -fu root | egrep -v 'bash|ksh|ssh|ef|mailx|nohup|defunct|ps|sh|FND' >temp && cat temp | wc -l
       4

1 ответ1

0

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

Попробуй это:

ps -fu root | egrep -v 'wc|bash|ksh|ssh|ef|mailx|nohup|defunct|ps|sh|FND' | wc -l

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