【发布时间】:2012-04-02 21:11:32
【问题描述】:
所以我在 bash 上运行它:
# somedevice -getevent
这个命令的作用是它一直运行,每次我的设备发送某个数据,比如它检测到温度变化,它就会输出类似这样的东西
/dev/xyz: 123 4567 8910112238 20
/dev/xyz: 123 4567 8915712347 19
/dev/xyz: 123 4567 8916412345 22
/dev/xyz: 123 4567 8910312342 25
/dev/xyz: 123 4567 8910112361 18
/dev/xyz: 123 4567 8910112343 20
这只是继续运行,一旦有任何原因,它就会输出一些东西。所以执行没有尽头。
没有 echo 工作正常,但是当我尝试使用 '>' 运算符时,这似乎没有写入文件。
比如
#somedevice -getevent > my_record_file
这不能正常工作,my_record_file 只能在 间隔 中将数据写入其中,但我想立即写入。
有什么想法吗?
【问题讨论】:
-
延迟可能是由于输出缓冲。您可以更改程序以在每次打印后执行 flush() 或在其标准输出上设置自动刷新吗?
-
好的,我想出了一个解决我的问题的方法,这是一个缓冲问题
somedevice -getevent | grep " " --line-buffered > myrecordfile解决了这个问题.. 也许它不是最好的主意,但现在这个 hack 完成了工作.. 谢谢为您提供所有帮助!