的腳本命令所以第一關,我會承認自己是很新的期待腳本我一直在玩它約3天。我拿起了O'Reilly的書,正在努力通過它。然而,我對預期流量感到困惑,並希望得到一些指導。預計運營
我在下面的代碼片斷。 if語句的上半部分完美地工作。但是elseif部分不能按預期工作。它執行,只是無序。它首先處理puts線,然後通過發送命令運行。我想知道爲什麼這樣做,以及如何使它按順序執行。
也是另一種好辦法,我想提出的是,當沒有爲$ MD5匹配,我不想等待超時。所以基本上我希望期望$ MD5或任何不是$ MD5的東西,這樣我就不必爲默認的超時而坐。我意識到我可以期待 - 超時1「$ MD5」並縮短窗口,但我想知道是否有一種更優雅的處理方式。
預先感謝您。
expect "$MD5"
if {$MD5 == $expect_out(0,string)} {
send "config t\r";
send "no boot system\r";
send "boot system flash:$IOS\r";
send "exit\r";
send "wr mem\r";
expect "OK";
send "exit\r";
puts -nonewline "\nIOS Upgrade Successful and Bootvar changed.\n"
exit
} elseif {$MD5 != $expect_out(0,string)} {
send "delete flash:$IOS\r";
send "\r";
send "\r";
send "exit\r";
puts -nonewline "\nIOS Upgrade FAILED MD5 Hash did not match!\n";
expect eof
exit
}
感謝您的反應,工作。下面清理代碼: '期望 「$ MD5」 如果{$ MD5 == $ expect_out(0,字符串)} { 發送 「配置牛逼\ R」 發送 「沒有啓動系統\ R」 發送「啓動系統閃光燈:$ IOS \ r「 發送」退出\ r「 發送」wr mem \ r「 預計」OK「 發送」退出\ r「 puts -nonewline」\ nIOS升級成功和Bootvar已更改。\ n 「 退出 }其他{ 發送 」刪除/強制閃光:$ IOS \ R「 發送 」退出\ R「 預期EOF 提出-nonewline 」\ NIOS升級失敗MD5哈希不匹配\ n「!退出 }' – rsaturns