我的脚本有问题。我有一个连接到串行USB设备(ttyUSB1)的电压表。 智能电表需要一个初始序列,然后是第二个命令,以提供所有信息。这很好。例如,1.8.0 * 00(000898.46)就是我感兴趣的行。括号中的数字是我想要的kWh数。如果我打开第二个终端并做了一个cat / dev / ttyUSB1,它工作正常,我可以看到信息进来.4到5秒后,我想要的行进来。但脚本无效。如果我在一个终端中启动脚本,它会一直等待。 Grep没有完成。如果我在第二个终端启动它,那么第一个终端就完成了。或者只是另一个终端中的grep 1.8.0 / dev / ttyUSB1 -m1可以工作但脚本中没有。 我尝试了不同的方法,所以没有工作。说实话,我不太了解脚本,总是以某种方式取得成功,但这里没有帮助:(
请帮忙。谢谢! ·阿尔
这里是剧本:
#! /bin/bash
echo start
echo $'\x2f\x3f\x21\x0d' > /dev/ttyUSB1
sleep 1
echo ask
echo $'\x06\x30\x30\x30\x0d' > /dev/ttyUSB1
echo wait
grep 1.8.0 /dev/ttyUSB1 -m1
echo end
答案 0 :(得分:0)
您可以尝试使用voltimeter的输出创建一个文件,并从该文件中创建grep:
#! /bin/bash
dev=/dev/ttyUSB1
file=/tmp/testfile
(tail -f $dev | tee $file) & # let's continuously copy in background
echo start
echo $'\x2f\x3f\x21\x0d' > $dev
sleep 1
echo ask
echo $'\x06\x30\x30\x30\x0d' > $dev
echo wait
grep 1.8.0 $file # lets get the info from the file instead
echo end
sleep 1
exit