我尝试使用expect为交互式bash脚本编写回归测试。
到目前为止一切正常。我使用正确的参数生成流程,然后send
/ expect
。
我希望在测试期间使用set -x
命令在bash脚本中启用跟踪。但是,这样做时,bash跟踪输出会产生混乱。
我希望在执行匹配时忽略这些行但仍然在stdout或stderr上输出它们。
显然,有办法独立对待stderr和stdout。
我已经尝试过使用expect_before
和expect_background
做了一些事情,但没有人给我带来好结果。
有什么想法吗?
感谢。
答案 0 :(得分:0)
如果定义良好的bash
脚本中的输出(我的意思是非跟踪输出),则可以在使用expect
命令时忽略跟踪输出。例如,如果您的脚本显示:
+ echo 'Password:'
Password:
您可以使用expect
的正则表达式模式:
expect -re '^Password:'
这会忽略跟踪输出但匹配密码提示。当然,您的匹配规则应该非常紧密,以便不匹配任何不良输出。