Изменяет ли установленное время ожидания каждое ожидаемое утверждение или только окончательное ожидаемое значение?
Я учусь пользоваться /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, и я не хочу, чтобы они останавливались бесконечно.
1 ответ
set timeout
влияет на время ожидания для каждого expect
заявление. Однако вы можете дать явное переопределение для любого из них:
expect -timeout 100 ...
Обратите внимание, что set timeout
внутри proc
Функция будет устанавливать его только для локальной области действия этой функции, не влияя на значение глобального тайм-аута.