如果出现某个控制台输出字符串,则中止bash脚本

时间:2012-06-02 08:34:48

标签: bash

我使用bash脚本自动运行模拟程序。该程序在控制台中定期打印模拟的当前状态,如"迭代步骤42正常结束"。

是否可以中止脚本,如果控制台输出类似于"警告:参数xyz超出有效范围"? 如果控制台输出通过管道传输到文本文件,我该怎么办?

很抱歉,如果这听起来很愚蠢,我是新手: - )

提前致谢

1 个答案:

答案 0 :(得分:1)

对于Bash来说,这不是一个理想的工作。但是,您当然可以使用条件,类似grep的工具和命令替换的混合来捕获和测试Bash迭代循环中的STDOUT。

另一方面,如果Bash没有进行循环(例如,它只是等待外部命令完成),那么你需要使用类似expect的东西。 Expect是专门用于监视正则表达式的输出流,并根据表达式匹配执行分支。