0

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 &がわかりました。理由がわからない...

4

1 に答える 1

1

どうtail -f /dev/crbif0rb0c{0,1,2,3}ですか?

于 2012-05-03T10:46:57.933 に答える