我阅读了以下代码,但我不明白它是如何工作的:
set accum ""
set timeout 1
expect {
-re {.+} {
set accum "${accum}$expect_out(0,string)"
exp_continue
}
}
set timeout 10
一开始,我们设置了accum和timeout,然后有一个expect命令尝试匹配一些东西?在它之后,我们将超时设置为10,整个代码如何工作?这意味着什么?
答案 0 :(得分:1)
直到代码超时(在任何的最后一次匹配后1秒),任何时候匹配某些东西(这是任何字符序列 - 可能不包括换行符 - 因为-re {.+}
)它将它附加到accum
变量并重新开始预期某些事情(exp_continue
确实是魔术)。
使用append accum $expect_out(0,string)
效率更高,但完成方式不是错误。