linux – 如何使用Expect自动化telnet会话?

我正在尝试编写一个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

dawei

【声明】:丽水站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。