3
#!/usr/bin/expect -f
spawn telnet 10.21.0.17
expect -re "login"
send "admin\n"
expect -re "Password"
send "supersecurepassword\n"
interact

按预期工作。运行脚本后,我登录到我在该行中使用的任何远程 IPspawn telnet 10.21.0.17

然后它把我丢到 AP 的外壳上

WAP->

如何发出进一步的命令?我想发出reboot然后也许是sleep 20最后exit

我试过使用echoexpect没有成功。我也试过删除interact没有成功。有任何想法吗?

4

1 回答 1

2

只需在sleep之前添加 a 即可解决此问题expect,当然不包括interact,以下效果很好:

#!/usr/bin/expect -f
spawn telnet 10.21.0.17
expect -re "login"
send "admin\n"
expect -re "Password"
send "supersecurepassword\n"
sleep 5
expect "WAP"
send "reboot\n"
send "exit\n"

作为参考,这用于自动重启 D-Link DAP-2590 无线接入点。既然我知道了这一点,我可能会将它用于其他事情:更改密码等。希望它在未来对其他人有所帮助。

于 2012-06-22T02:39:59.470 回答