パイプからコマンドをリアルタイムで実行する

パイプからコマンドをリアルタイムで実行する

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

関連情報