Я пытаюсь создать скрипт Linux, который может перезагрузить мой модем ASDL.

Вот мой файл rebootModem.exp :

#!/usr/bin/expect

set userName admin
set pass admin
set command reboot #It is modem reboot command

set timeout 20
spawn telnet 192.168.1.1
expect "Login: "
send "$userName\r"
expect "Password: "
send "$pass\r"
send "$command\r"

Когда я запускаю этот файл, он получает меня:

spawn telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
BCM96338 ADSL Router
Login: admin
Password: [kamix@localhost ~]$ 

Кажется, send "$command\r" не работает!

Что мне здесь не хватает?

PS:

rebootModem.exp является исполняемым (+x).

1 ответ1

0

Решение :

взаимодействовать необходимо использовать после команды перезагрузки:

#!/usr/bin/expect 

set userName admin
set pass admin
set command reboot

set timeout 20
spawn telnet 192.168.1.1
expect "Login:"
send "$userName\r"
expect "Password:"
send "$pass\r"
expect ">"
send "$command\r"
interact

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .