私はこのスクリプトを使って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"
部。次のようなシェルプロンプトが表示されます。 ~ $
(ティルダスペースドルスペース)。しかし、これ以降はコマンドを発行できません。それ以降は基本的に動作しません。
誰もがその理由を言うことができますか?彼らが私がしているいくつかの間違いですか?