Изменяет ли установленное время ожидания каждое ожидаемое утверждение или только окончательное ожидаемое значение?

371
mcandre

Я учусь впервые использовать /usr/bin/expectдля автоматизации кошмара, который устанавливает fink из исходного кода, так как этот скрипт имеет несколько десятков запросов, на все из которых можно ответить клавишей Enter. Проблема в том, что одна часть скрипта занимает около 30 минут, а последняя часть занимает около 10 минут. Я не уверен, set timeout 1800или set timeout 600. По сути, я хочу знать, set timeoutвлияет ли время ожидания для каждого expect "..."оператора или только на финал expect eof.

Я мог бы настроить это консервативно и просто пойти дальше set timeout 1800, но я полагаю, что если семантика ожидаемого результата является окончательной, то лучше выбрать там более конкретное время ожидания.

Я знаю, что мог бы также пойти на это set timeout -1, но этот ожидаемый сценарий должен запускаться серверами CI, и я не хочу, чтобы они останавливались бесконечно.

0

1 ответ на вопрос

2
meuh

set timeoutвлияет на время ожидания для каждого expectоператора. Однако вы можете дать явное переопределение для любого из них:

expect -timeout 100 ... 

Также обратите внимание, что set timeoutвнутри procфункции она будет установлена ​​только для локальной области действия этой функции, не влияя на значение глобального тайм-аута.

Похожие вопросы