我需要一个bash脚本来读取串行端口(RS232转USB适配器 - 端口是:/ dev / ttyUSB0)的数据流。 该数据应存储逐行在一个文件中,直到一个特定的输入(例如,“EOF”)出现。 我可以给任何外部输入到串行端口。 直到现在我用猫来读取数据,工作正常。
cat /dev/ttyUSB0 -> file.txt
问题是,我需要通过输入CNTR + C完成命令自己,但我不知道什么时候数据流结束,ttyUSB0文件不gerenate的EOF。 我想这个实现自己,但没有找到一个方便的解决方案。 下面的命令工作,但我不知道如何使用它我的问题(“世界”将创建一个“命令未找到”错误):
#!/bin/bash
cat > file.txt << EOF
hello
EOF
world
下面的代码适用于我的问题,但它需要太多的时间(数据流由约2万行):
#!/bin/bash
while read line; do
if [ "$line" != "EOF" ]; then
echo "$line" >> file.txt
else
break
fi
done < /dev/ttyUSB0
有没有人方便的可能性,我的问题?