當使用grep -r "something" .
時,它會打印輸出,因爲找到了某些東西。Bash沒有等到管道完整的結果,而是直接輸出直接的動作
無論什麼時候使用管道進行後處理,它都會等待,直到收到所有輸出爲止。
每行管道有某種方式/語法嗎?
不要改進例子麻煩,這真的只是一個例子:
grep -r "something" . | grep -v "somethingelse" # excluding somethingelse
結果只會在那裏一切都已經被搜查(因爲管道|
的)之後,但我當「線路變得可用」時尋找將在來自grep -r "something" .
的每條線上作出響應的語法。
可以通過管道連接到等待輸入的程序,並處理任何到達它的程序,但是使用管道只會將數據發送給它,因爲它完全完成了嗎?
有沒有人有想法?
如果您安裝了expect軟件包,則可以使用'unbuffer'命令。討論類似的問題[這裏](http://stackoverflow.com/questions/3465619/how-to-make-output-of-any-shell-command-unbuffered) –
@BalajiSukumaran確實這是一個重複的,不知道找到它的術語。謝謝! – PascalVKooten