使用expect脚本处理路由器/交换机上的彩色文本

时间:2018-02-27 17:02:06

标签: unix scripting router expect

我正在尝试使用expect脚本登录路由器。现在,通常,当远程设备上的文本没有着色时,我的脚本工作正常。

但是当设备上的文本被着色时,脚本无法进行身份验证并登录设备。

我用谷歌搜索,我知道它与ANSI颜色代码序列有关。

 #!/usr/local/bin/expect
    set hostName [lindex $argv 0]

    spawn telnet $hostName

    expect "Username:"
    send "userid\n"

    expect "Password:"
    send "pswdstring\n"

    expect "*#"
    send "quit"

以下是我的观察:

  1. 我可以手动成功登录设备。彩色文本仍然在控制台上打印,但在身份验证中没有问题。

  2. 当我将脚本输出重定向到文件时,我可以看到ANSI颜色代码

  3. 输出片段:

       [33mNo/expired credentials.
        [m[33mUsername: [muserid
        [33mPassword: [mpswdstring
    

    我知道颜色转义序列附加到输入的实际用户ID和密码并导致身份验证失败。我尝试发送一个退格符,但该dint也可以。

    请帮助处理这些颜色代码。我是从Solaris机器执行脚本的。

0 个答案:

没有答案