ожидать скрипт для автоматизации входа в telnet
Я пытался создать сценарий ожидания для автоматического входа на мое устройство через telnet
Если нет нескольких возможностей для команды expect, скрипт работает нормально, входит в систему устройства.
#!/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 "$userr"
expect "Password:"
send "$passwordr";
interact
скрипт выше отлично работает и успешно входит в систему, когда я передаю правильные параметры. Но как только я добавляю дополнительные ветви (для обработки ошибок) в команду expect , скрипт застревает в 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 "$userr"
expect "Password:"
send "$passwordr";
interact
}
"host: Connection refused"
{
send_user "ERROR:EXITING!"
exit
}
}
PS: этот сценарий должен быть дополнительно разработан, чтобы ждать дополнительных приглашений для загрузки различных изображений сборки на устройстве. Работает только telnet(консольное) соединение. поэтому ssh не является вариантом.
1 ответов
мой плохой. Проблема была в фигурных скобках. Они должны находиться в той же строке, что и команда expect .