從管道即時運行命令

從管道即時運行命令

如果我有一個像輸出命令那樣的管道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

相關內容