运行调试命令后,它的输出非常大......所以在某些时候它一直在询问
Type <return> to continue,or q <return> to quit
现在我想针对不同的bug自动执行这些命令。但是我上面提到的这个特定语句在调试不同的bug时不断变化。有时它会出现两次一个bug,有时会出现另外五次bug。我怎么写期望脚本给这些ie的继续选项?
答案 0 :(得分:1)
如果我们不知道某些模式的出现顺序甚至是次数,那么exp_continue
是正确的命令。
expect {
<pattern1> {send "cmd1"; exp_continue}
<pattern2> {send "cmd2"; exp_continue}
<pattern3> {send "cmd3"}
}
在上面的示例中,假设pattern1
和pattern2
可能不会以相同的顺序到达,并且出现的次数也会有所不同,那么cmd1
和cmd2
将是已发送,Expect
仍会再次运行。
命令exp_continue
允许Expect
本身继续执行而不是像往常一样返回。这对于避免显式循环或重复的期望语句很有用。
默认情况下,exp_continue
会重置超时计时器。如果使用exp_continue
标志调用-continue_timer
,则不会重新启动计时器。
在你的情况下,我们可以写一些像
这样的东西expect {
"Type <return> to continue,or q <return> to quit" {send "\r";exp_continue}
"some-more-patterns" {#handler_here}
}