我正在尝试编写一个expect脚本来自动执行telnet.这就是我到目前为止所拥有的.
#!/usr/bin/expect # Test expect script to telnet. spawn telnet 10.62.136.252 expect "fooBox login:" send "foo1\r" expect "Password:" send "foo2\r" send "echo HELLO WORLD\r" # end of expect script.
基本上,我想要做的是telnet到以下IP地址,然后回应HELLO WORLD.但是,似乎脚本在尝试telnet后失败了……我不确定它是否能够接受登录和密码输入,但它并没有回应HELLO WORLD.相反,我只是得到这个输出:
cheungj@sfgpws30:~/justin> ./hpuxrama spawn telnet 10.62.136.252 Trying 10.62.136.252... Connected to 10.62.136.252. Escape character is '^]'. Welcome to openSUSE 11.1 - Kernel 2.6.27.7-9-pae (7). fooBox login: foo1 Password: foo2~/justin>
解决方法
您在没有首先预期提示的情况下发送echo命令.尝试:
# after sending the password expect -re "> ?$" send "echo HELLO WORLD\r" expect eof