0
我想通過下面的代碼在服務器中配置默認路由。我的問題在於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
它正確發送了命令。 [注意調試輸出,'發送'route add default gw 5.66.0.1 \ r「到{exp9}']。雖然只匹配模式,但起初它可能試圖匹配'route add defaul'。如果您檢查調試輸出,則會進一步檢查整個輸出,具體取決於超時值。 – Dinesh