我正在使用期望自动化一些工作,并且具有以下内容:
# procedure to set background and after patterns
proc foo {} {
expect_after {
-re $regex1 {puts "Matched regex1"; send $command_to_run; exp_continue}
timeout {exp_continue}
}
expect_background {
-re $regex2 {do other things; exp_continue}
-re $regex3 {and more different things; exp_continue}
timeout {exp_continue}
}
}
spawn $thing
foo
expect_user {
-ex "stahp" {exit}
}
这在模式匹配后无限期挂起expect_after
(并运行关联的主体)。但是,如果我将expect_after
andexpect_background
模式移出过程,那么它会按照我的预期运行。
为什么它在放入程序时表现不同?