ожидать скрипт для автоматизации входа в 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 .