Я пытаюсь заставить ожидаемый сценарий работать, и когда я использую флаг -re (чтобы вызвать синтаксический анализ регулярного выражения), ключевое слово 'timeout' кажется больше не работает. Когда запускается следующий скрипт, я получаю сообщение «Тайм-аут на шаге 1», затем «Запуск шага 2», а затем истекает время, но НЕ печатает «Тайм-аут на шаге 2». Я просто получаю новое приглашение.
Идеи
#!/usr/bin/expect --
spawn $env(SHELL)
match_max 100000
set timeout 2
send "echo This will print timed out\r"
expect {
timeout { puts "timed out at step 1" }
"foo " { puts "it said foo at step 1"}
}
puts "Starting test two\r"
send "echo This will not print timed out\r"
expect -re {
timeout { puts "timed out at step 2" ; exit }
"foo " { puts "it said foo at step 2"}
}