otiru 2022-01-20 15:50 采纳率: 0%
浏览 14

linux expect模块实现telnet交互问题

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

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

 

 

 

  • 写回答

1条回答 默认 最新

  • 千册 新星创作者: 操作系统技术领域 2022-12-02 23:28
    关注

    看到这个题,就是缘分吧。下面我写的自动登录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:~$ 
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月20日