当我打印流程时,我得到:
$ ps --no-headers
12961 pts/0 00:00:00 bash
16676 pts/0 00:00:00 ps
所以,他们只有两个过程。但是,当我这样做时:
$ ps --no-headers | wc -l
3
知道为什么吗?
答案 0 :(得分:4)
你的wc进程是第三个。所以在两种情况下计数都是正确的,一切都按预期工作。管道进程在点击进入后立即开始,而不是在ps完成后吐出并输出其输出。
如果您不希望发生这种情况,可以使用临时文件。
ps --no-headers > /tmp/foo
wc -l /tmp/foo
会再产生两个。