linux expect模块实现telnet交互问题

通过expect进入telnet终端后,send命令只能输入第一个字符,这是什么原因

脚本如下图,执行到send "show\r" 时只在界面上看到了第一个字符s

 

 

 

看到这个题,就是缘分吧。下面我写的自动登录telent的脚本。


#!/usr/bin/expect
spawn telnet 127.0.0.1
expect {
    "login:" {
        send "lkmao\n";exp_continue
    }   
    "assword" {
        send "lkmao\n"
    }   
}
interact

查看我的本地的telnet服务:如下所示,当前已经建立了两个连接

lkmao@ubuntu:~$ netstat -a | grep telnet
tcp        0      0 *:telnet                *:*                     LISTEN     
tcp        0      0 localhost:telnet        localhost:49002         ESTABLISHED
tcp        0      0 localhost:49002         localhost:telnet        ESTABLISHED
lkmao@ubuntu:~$ 


执行这个expect脚本:

img


当前的telent服务状态:两个客户端,两个服务端。

lkmao@ubuntu:~$ netstat -a | grep telnet
tcp        0      0 *:telnet                *:*                     LISTEN     
tcp        0      0 localhost:telnet        localhost:49002         ESTABLISHED
tcp        0      0 localhost:telnet        localhost:52268         ESTABLISHED
tcp        0      0 localhost:52268         localhost:telnet        ESTABLISHED
tcp        0      0 localhost:49002         localhost:telnet        ESTABLISHED
lkmao@ubuntu:~$