Я учусь впервые использовать /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 ответ1

2

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

expect -timeout 100 ...

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .