与 ps 的计数差异 |厕所
Difference in count with ps | wc
当我打印流程时,我得到:
$ ps --no-headers
12961 pts/0 00:00:00 bash
16676 pts/0 00:00:00 ps
所以,他们只是两个过程。但是,当我这样做时:
$ ps --no-headers | wc -l
3
知道为什么吗?
你的wc进程是第三个。因此,在这两种情况下计数都是正确的,并且一切都按预期进行。管道进程在按下回车键后立即启动,而不是在 ps 完成并吐出其输出之后。
如果您不希望这种情况发生,您可以使用一个临时文件。
ps --no-headers > /tmp/foo
wc -l /tmp/foo
会再次产生两个。
当我打印流程时,我得到:
$ ps --no-headers
12961 pts/0 00:00:00 bash
16676 pts/0 00:00:00 ps
所以,他们只是两个过程。但是,当我这样做时:
$ ps --no-headers | wc -l
3
知道为什么吗?
你的wc进程是第三个。因此,在这两种情况下计数都是正确的,并且一切都按预期进行。管道进程在按下回车键后立即启动,而不是在 ps 完成并吐出其输出之后。
如果您不希望这种情况发生,您可以使用一个临时文件。
ps --no-headers > /tmp/foo
wc -l /tmp/foo
会再次产生两个。