期望脚本调用bash脚本,但可能不会出现输出

问题描述

我正在尝试编写一个期望脚本,该脚本调用bash脚本,该脚本可能会或可能不会输出一行文本:

...
expect "this string appears"
...
expect "this string may or may not appear"
...
expect "this string appears"
...

如果出现“此字符串可能会或可能不会出现”,我该如何编码?如果不出现,我该如何继续发送?

解决方法

您将使用多模式的Expect语句:

expect {
    "this string may or may not appear" {
        # do stuff ...
        exp_continue
    }
    "this string appears"
}
# ... do more stuff

exp_continue命令实际上在Expect命令中“循环”,因此它可以继续查找任何给定的模式。最后一个模式“此字符串出现”没有动作块,因此期望命令返回,脚本继续执行下一个命令。