2012-06-02 36 views
-1

我使用bash脚本自动运行一个仿真程序。该程序定期在控制台中打印模拟的当前状态,如“迭代步骤42正常结束”。中止bash脚本,如果某个控制台输出字符串出现

是否有可能中止脚本,如果控制台输出是一样的东西“警告:参数XYZ以外的有效范围”? 如果控制台输出是通过管道连接到文本文件,我该怎么办?

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

+0

你可以试试'expect'工具。 – kev

+2

您可以通过发布示例代码和示例输出来提问质量更高的问题。 –

回答

1

感谢这不是猛砸一份理想的工作。但是,您可以使用条件,类似grep的工具和命令替换的混合来捕获和测试Bash迭代循环内的STDOUT。另一方面,如果Bash没有进行循环(例如它只是等待外部命令完成),那么你需要使用类似expect的东西。 Expect旨在构建用于监视正则表达式的输出流,并根据表达式匹配执行分支。