Как это ожидаемое утверждение работает в TCL? - PullRequest
0 голосов
/ 15 марта 2012

Я прочитал следующий код, но я не понимаю, как он работает:

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

в начале, мы устанавливаем набор и тайм-аут, затем есть ожидаемая команда, пытающаяся что-то найти? и после этого мы устанавливаем таймаут равным 10, как работает весь код? а это значит?

1 Ответ

1 голос
/ 15 марта 2012

До истечения времени ожидания кода (1 секунда после последнего совпадения чего-либо ), каждый раз, когда оно совпадает с чем-либо (любой последовательностью символов - возможно, исключая символ новой строки - из-за -re {.+}), к которому он добавляется Переходит к переменной accum и перезапускается, ожидая чего-либо (exp_continue действительно волшебно).

Было бы более эффективно использовать append accum $expect_out(0,string), но способ, которым это сделано, не является неправильным .

...