在Shell脚本中处理程序的连续输出

时间:2019-05-07 15:00:28

标签: bash

我正在开发Linux系统和打印机之间的某种通信。我正在将Windows程序与wine一起使用,以进行实际的通信,并希望在bash脚本中处理其输出以对打印机的状态变化做出反应。 Windows程序会连续输出以下状态:

t:idle
t:idle
t:idle
t:new_job:00070035
t:51
t:51
t:30
t:30
...
t:10
t:10
t:0
t:0
t:0
t:success
t:idle
t:idle
t:idle

该脚本在收到例如t:0(打印完成)。我尝试了各种文件描述符重定向,但是没有运气。

是吗,因为Win程序永不退出?我仍然可以读取输出吗? 据我了解,这应该可以做到:

while read a; do
    echo $a ... received
done < <(DISPLAY=:0.0 wine JobTracking.exe $ipPrinter 2>> $fileLog)

我也无法将输出重定向到文件。像这样:

DISPLAY=:0.0 wine JobTracking.exe $ipPrinter 2>> $fileLog 1> test.txt

“ $ fileLog”包含葡萄酒的STDERR消息,但“ test.txt”为空。

谢谢!

0 个答案:

没有答案