0 $ ps ax | grep 6557 #=> 6582 s003 S+ 0:00.01 grep 6557 但是使用活动监视器快速检查没有使用pid 6557的进程。并且在线的所有内容都表示当没有匹配时grep应该返回0。 bash grep — MCB source 执行此操作时,ps会列出所有进程,包括grep命令,因此它会匹配自身。它应匹配一次。 — MikeP
6 这是比赛: $ ps ax | grep 6557 6582 s003 S+ 0:00.01 grep 6557 ^^^^ (found it!) grep检查行中的所有内容,包括命令和参数,并且6557是您给出的参数grep,因此它会找到自己的进程。 更严格的正则表达式可以修复这种特殊情况: ^指示行的开头,并\ \*匹配任意数量的前导空格,因此这只会在行的最开头找到匹配项: $ ps ax | grep ^\ \*6557 — 不切实际 source 输出ps ax通常以空格开头。 — choroba @choroba所以它确实如此。(而且不能保证只有一个。) ^\ \*6557可读性稍差。 — 怪异