У меня есть небольшая проблема, когда я ожидаю.
Я использовал его в течение нескольких лет с хорошими результатами, но теперь у меня был неправильный пароль, поэтому скрипт перестает работать до конца.
Я использовал ожидаемый на Linux для перезагрузки камер видеонаблюдения в моей компании с помощью cron. Это работало хорошо, пока я не обновил несколько своих камер до более новой модели, и тогда это было неправильное имя пользователя и пароль, которые были по умолчанию. Я не заметил этого, пока я не просмотрел свои журналы, которые ожидали, что перестали работать с ошибкой пароля. Поэтому я немного покопался и хотел просто послать ctrl-C, чтобы прервать соединение и перейти к следующему спавну, но пока что не повезло. Я пробовал много разных методов, но пока ни один из них не работает.
spawn telnet $11
expect {
"unable to connect to remote host:" { }
"login:" {
send "username\r"
expect "password:"
send "$password\r"
expect {
"wrong username or password"
send "\003" }
expect "#"
send "shutdown -r now\r"
expect "#"
send "exit\r"
expect "Connection closed by foreign host." }
}
Spawn telnet $12
в результате вместо вызова telnet 12 он просто идет в конец файла.
Кто-нибудь может ответить на мой вопрос?