当我使用‘ps’,‘egrep’和'厕所'命令来计算进程数,它给出了错误的值。我在“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
我认为它正在计算wc
过程,当输出通过ps
管道传输到文件时它不会显示出来。
尝试这个:
ps -fu root | egrep -v 'wc|bash|ksh|ssh|ef|mailx|nohup|defunct|ps|sh|FND' | wc -l