这个期望声明如何在TCL中发挥作用?

时间:2012-03-15 14:58:07

标签: tcl expect

我阅读了以下代码,但我不明白它是如何工作的:

set accum ""
set timeout 1
    expect {
        -re {.+} {
            set accum "${accum}$expect_out(0,string)" 
            exp_continue
        }
    }
set timeout 10

一开始,我们设置了accum和timeout,然后有一个expect命令尝试匹配一些东西?在它之后,我们将超时设置为10,整个代码如何工作?这意味着什么?

1 个答案:

答案 0 :(得分:1)

直到代码超时(在任何的最后一次匹配后1秒),任何时候匹配某些东西(这是任何字符序列 - 可能不包括换行符 - 因为-re {.+} )它将它附加到accum变量并重新开始预期某些事情(exp_continue确实是魔术)。

使用append accum $expect_out(0,string)效率更高,但完成方式不是错误