在期望中忽略Bash跟踪

时间:2013-11-19 21:05:52

标签: bash shell expect

我尝试使用expect为交互式bash脚本编写回归测试。

到目前为止一切正常。我使用正确的参数生成流程,然后send / expect

我希望在测试期间使用set -x命令在bash脚本中启用跟踪。但是,这样做时,bash跟踪输出会产生混乱。

我希望在执行匹配时忽略这些行但仍然在stdout或stderr上输出它们。

显然,有办法独立对待stderr和stdout。

我已经尝试过使用expect_beforeexpect_background做了一些事情,但没有人给我带来好结果。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

如果定义良好的bash脚本中的输出(我的意思是非跟踪输出),则可以在使用expect命令时忽略跟踪输出。例如,如果您的脚本显示:

+ echo 'Password:'
Password:

您可以使用expect的正则表达式模式:

expect -re '^Password:'

这会忽略跟踪输出但匹配密码提示。当然,您的匹配规则应该非常紧密,以便不匹配任何不良输出。