2012-05-03 123 views
0

我有4個UART設備,我想同時觀察它們的輸出。我使用以下腳本來完成這項工作:帶緩衝區的並行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循環中使用第二行時,我得到很多輸出,但由於所有輸出都搞亂了,所以不可讀。

所以我的問題是爲什麼當我使用grep時沒有輸出(空行除外)?或者任何人都可以爲我的方案提供更好的(和可行的)解決方案?

在此先感謝!

[UPDATE]我突然發現cat /dev/crbif0rb0c${i}ttyS0 | grep^--line-buffered &會工作。不知道爲什麼...

回答

1

tail -f /dev/crbif0rb0c{0,1,2,3}怎麼樣?

+0

不,這不起作用。沒有輸出被打印。 –

+0

您的UART是否打印CR和/或LF?因爲輸出在完成一行之前不會被打印。 – artbristol

+0

他們正在打印「\ n」。但是沒關係,通過'grep'中的'^'替換'''來解決問題。 –