我使用ps列出我连接的机器上运行的所有进程,搜索我自己的进程,然后打印我正在运行的进程数,如下所示:
ps -Af | grep '^mkuhlman' | wc -l
问题是,检查实际的进程列表,我只运行8,但wc
列出了9个进程。我做错了什么?
为了澄清,我不是在寻找与流程匹配,而是与我自己的用户名匹配。
答案 0 :(得分:0)
您的管道有一些流程,而您正在计算它们。
正常运行ps
,但您可能会对pgrep
感到满意。它有一个手册页。 (并且ps -A
似乎与为您自己的用户名求值一致。)
答案 1 :(得分:0)
虽然grep -v grep
在大多数情况下会起作用,但它可能会导致输出错误,因为它会排除所有grep
进程,而不仅仅是与ps
命令行相关的进程。所以,你可以这样做:
ps -Af | grep -E '^mkuhlman|__unique__' | grep -v __unique__
其中__unique__
是一个唯一的字符串,不太可能在其他用户进程的命令行中使用。
另见: