
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