我使用bash脚本自动运行模拟程序。该程序在控制台中定期打印模拟的当前状态,如"迭代步骤42正常结束"。
是否可以中止脚本,如果控制台输出类似于"警告:参数xyz超出有效范围"? 如果控制台输出通过管道传输到文本文件,我该怎么办?
很抱歉,如果这听起来很愚蠢,我是新手: - )
提前致谢
答案 0 :(得分:1)
对于Bash来说,这不是一个理想的工作。但是,您当然可以使用条件,类似grep的工具和命令替换的混合来捕获和测试Bash迭代循环中的STDOUT。
另一方面,如果Bash没有进行循环(例如,它只是等待外部命令完成),那么你需要使用类似expect的东西。 Expect是专门用于监视正则表达式的输出流,并根据表达式匹配执行分支。