ожидаемые сценарии и старое сетевое устройство выводят управляющие символы ANSI

#bash #expect

#bash #ожидать

Вопрос:

Добрый день,

Я гуглил это весь день и даже пробовал другие решения на python, но не имел никакого успеха.

У меня есть несколько устаревших сетевых устройств, которые, кажется, имеют странный тип терминала, когда вы подключаетесь к ним по SSH, тот, где CTRL h — это пробел!

Это вызывает проблемы для моего ожидаемого скрипта, для чего требуется выполнить 3 вещи: 1) войти в систему 2) повысить привилегии (думаю, включить cisco) 3) сохранить конфигурацию

Пытался установить тип терминала, но не уверен, что vt100 указан правильно, я сомневаюсь, что это так. Я также добавил команды sleep, чтобы посмотреть, решит ли это задержка, без кубиков.

вот мой сценарий на данный момент

 #!/usr/bin/expect
set ::env(TERM) vt100
## Get username
send_user "Username: n"
expect_user -re "(.*)n" { set user $expect_out(1,string) }

## Get pass
stty -echo
send_user "Password: n"
expect_user -re "(.*)n" { set pass $expect_out(1,string) }
stty echo

## Get list of hosts
set f [ open "hosts.txt"]
set hosts [ split [read $f] "n"]
set hosts [ lreplace $hosts end end ]
close $f

## iterate host
foreach host $hosts {
        spawn ssh "$user@$host"
        expect {
                "continue connecting" { send "yesr"; exp_continue }
                "assword" { send "$passr" }
        }

        expect "Copyright (c)" {
                sleep 1
                send "r"
                sleep 1
                send "en 14r"
                sleep 1
                send "$passr"
                sleep 1
                send "config saver"
                sleep 1
                send "exitr"
        }
}
  

Вывод из скрипта

 deanmoore@laptop% ./zyxel
Username:
dean.moore
Password:
spawn ssh dean.moore@host1
dean.moore@host1's password:
Copyright (c) 1994 - 2013 ZyXEL Communications Corp.
host1> ^[[47;223R%                                                                                                                                                                                                     
deanmoore@laptop% 7;223R
  

Комментарии:

1. В чем ваш вопрос?

2. Приносим извинения. Кажется, я не могу отредактировать вопрос. Я хотел бы найти способ компенсировать возвращаемые символы мусора, чтобы я мог автоматизировать некоторые задачи на этом наборе host1> ^[[47; 223R%