4 つの UART デバイスがあり、それらの出力を同時に監視したいと考えています。このジョブを実行するには、次のスクリプトを使用します。
# first kill the cat process from last run
killall -v cat
for i in `seq 0 3`; do
cat /dev/crbif0rb0c$(i}ttyS0 | grep . --line-buffered &
# cat /dev/crbif0rb0c$(i)ttyS0 &
done
しかし、多くの空の行を除いて、このスクリプトからは何も出力されません。ものを削除grep
して for ループの 2 行目を使用すると、多くの出力が得られますが、すべての出力がめちゃくちゃになるため、読み取ることができません。
だから私の質問は、 grep を使用したときに出力がないのはなぜですか (空の行を除く) ? または、誰かが私のシナリオに対してより優れた (そして実行可能な) ソリューションを提供できますか?
前もって感謝します!
[更新]突然、それが機能することcat /dev/crbif0rb0c${i}ttyS0 | grep ^ --line-buffered &
がわかりました。理由がわからない...