2
當我打印的過程中,我得到:用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
任何想法爲什麼?
當我打印的過程中,我得到:用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
會再次產生兩個。
謝謝,這就是我所懷疑的,但我對bash命令和管道系統非常陌生。 –