为什么'期待'没有发送完整命令?

时间:2015-10-13 08:28:39

标签: expect

我想通过以下代码在服务器中配置默认​​路由。我的问题是Expect没有发送完整路由命令。看起来脚本正在截断命令。

它应该发送route add default gw 5.66.0.1,但它正在发送route add defaul

我不确定为什么会这样。

代码

puts "Sending route add default gw $cv_chassis_gw_ip_1 command"
send -- "route add default gw $cv_chassis_gw_ip_1\r"
sleep 1
expect {
    -timeout $cv_cmd_timeout
    -re "route.*#" { }
    timeout {
        puts "Timeout happend in getting # prompt"
    }
}
sleep 1

调试输出

Sending route add default gw 5.66.0.1 command
send: sending "route add default gw 5.66.0.1\r" to { exp9 }

expect: does "\n" (spawn_id exp9) match regular expression "route.*#"? no
sh-4.0# 
sh-4.0# route add defaul
expect: does "\nsh-4.0# \r\nsh-4.0# route add defaul" (spawn_id exp9) match regular expression "route.*#"? no

1 个答案:

答案 0 :(得分:0)

感谢Dinesh。 实际上它的服务器问题,服务器无法在某个时候完全读取命令,我尝试复制粘贴相同的命令,并发现有时它没有完全命令。 所以我们可以关闭这个帖子。