所以这可能是一个简单的问题,但我并不是一个bash程序员,我也无法弄清楚这一点。针对特定输出的Bash脚本监控程序
我们有一个封闭的源程序,调用一个子程序,直到它退出为止,此时程序将再次调用子程序。这无限重复。
不幸的是,主程序有时会自发地(反复)在一段随机的时间后失败调用子程序。最终的解决方案是联系原始开发者以获得支持,但同时我们需要针对该问题的快速修补程序。
我想写一个bash脚本来监视程序的输出,当它看到一个特定的字符串时,它会重新启动计算机(程序会在启动时自动重新运行)。 bash脚本需要将所有标准输出传递给屏幕,直到它看到特定的字符串。该程序还需要继续处理用户输入。
我试图用有限的成功执行以下操作:
./program1 | ./watcher.sh
watcher.sh基本上是以下几点:
while read line; do
echo $line
if [$line == "some string"]
then
#the reboot script works fine
./reboot.sh
fi
done
这似乎是工作确定,但领先的空白被剥离的回声语句,回声输出在中间挂起,直到子程序退出,此时输出的其余部分将打印到屏幕上。有没有更好的方法来完成我需要做的事情?
在此先感谢。