Я пытался создать сценарий ожидания для автоматического входа на мое устройство через telnet
Если для ожидаемой команды нет нескольких возможностей, скрипт работает нормально, регистрируется на устройстве.
#!/usr/bin/expect
set timeout 20
set ip [lindex $argv 0]
set port [lindex $argv 1]
set user [lindex $argv 2]
set password [lindex $argv 3]
spawn telnet $ip $port
expect "'^]'." sleep .1;
send "\r";
sleep .1;
expect "login:"
send "$user\r"
expect "Password:"
send "$password\r";
interact
Сценарий выше работает нормально и успешно входит в систему, когда я передаю правильные параметры. Но как только я добавляю дополнительные ветви (для обработки ошибок) к команде ожидаемого, скрипт застревает в login:
подсказке. Через некоторое время он печатает Ошибка скрипта
Любая помощь?? Ошибочный скрипт ниже.
#!/usr/bin/expect
set timeout 20
set ip [lindex $argv 0]
set port [lindex $argv 1]
set user [lindex $argv 2]
set password [lindex $argv 3]
spawn telnet $ip $port
expect "'^]'."
sleep .1;
send "\r";
expect
{
"login:"
{
send "$user\r"
expect "Password:"
send "$password\r";
interact
}
"host: Connection refused"
{
send_user "ERROR:EXITING!"
exit
}
}
PS: этот сценарий необходимо доработать, чтобы дождаться дополнительных запросов на загрузку разных образов сборки на устройство. Работает только телнет (консоль) соединение. так что ssh не вариант.