2015-10-13 62 views
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 
+1

它正確發送了命令。 [注意調試輸出,'發送'route add default gw 5.66.0.1 \ r「到{exp9}']。雖然只匹配模式,但起初它可能試圖匹配'route add defaul'。如果您檢查調試輸出,則會進一步檢查整個輸出,具體取決於超時值。 – Dinesh

回答

0

感謝迪內希。 其實它的服務器問題,服務器不能夠完全讀取一個命令,我試着做複製粘貼一個相同的命令,發現有時它並沒有採取完整的命令。 所以我們可以關閉這個線程。

相關問題