我想通过以下代码在服务器中配置默认路由。我的问题是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
答案 0 :(得分:0)
感谢Dinesh。 实际上它的服务器问题,服务器无法在某个时候完全读取命令,我尝试复制粘贴相同的命令,并发现有时它没有完全命令。 所以我们可以关闭这个帖子。