具有线路缓冲的并行UART输出

时间:2012-05-03 10:22:02

标签: linux concurrency grep cat

我有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循环中的第二行时,我得到了很多输出,但由于所有输出都搞砸了所以不可读。

所以我的问题是为什么当我使用grep 时没有输出(空行除外)?或者任何人都可以为我的场景提供更好(和可行)的解决方案?

提前致谢!

[更新] 我突然发现cat /dev/crbif0rb0c${i}ttyS0 | grep ^ --line-buffered &会起作用。不知道为什么......

1 个答案:

答案 0 :(得分:1)

tail -f /dev/crbif0rb0c{0,1,2,3}怎么样?