Я пытаюсь подключиться к маршрутизатору через telnet с помощью этого сценария:
#!/usr/bin/expect -f
set timeout 20
# router user name
set name "admin"
# router password
set pass "admin"
# router IP address
set routerip "192.168.1.1"
# Read command as arg to this script
set routercmd "cat /var/1.leases"
# start telnet
spawn telnet $routerip
# send username & password
expect "username:"
send -- "$name\n"
expect "password:"
send -- "$pass\n"
# get out of ISP's Stupid menu program, go to shell
expect "TBS>>"
send -- "sh\n"
# execute command
expect -re ".*\$"
send -- "$routercmd\n"
# exit
send -- "^D"
Теперь скрипт отлично работает до send -- "sh\n"
. Он попадает в командную строку, которая выглядит как: ~ $
(tilda-space-dollar-space). Однако я не могу выполнить команду после этого. Это просто не работает после этого.
Кто-нибудь может сказать почему? Это какая-то ошибка, которую я делаю?