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

Я учусь пользоваться /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 Функция будет устанавливать его только для локальной области действия этой функции, не влияя на значение глобального тайм-аута.

Другие вопросы по тегам