
如果我有一個像輸出命令那樣的管道cat /dev/somedevice | grep 'test'
,例如echo 'test 17'
,命令會即時顯示(每次/dev/somedevice
都會傳遞一些行)。然而,如果我將命令通過管道傳輸到sh
,由於管道緩衝,它們不會立即被調用。所以
cat /dev/somedevice | grep 'test' | sh
不會即時執行指令。
還有其他辦法可以嗎?與xargs
或什麼?
答案1
嘗試--line-buffered
建立連續流:
cat /dev/somedevice | grep --line-buffered 'test' | sh