因此,首先我承认我已经玩了大约 3 天的脚本非常新。我拿起了 O'Reilly 的书,正在努力完成它。但是我对期望的流程有点困惑,并希望得到一些指导。
我在下面有以下代码片段。if 语句的上半部分运行良好。但是 elseif 部分不能按预期工作。它执行,只是乱序。它首先处理 puts 行,然后通过 send 命令向下运行。我想知道它为什么这样做以及如何使其按顺序执行。
我还想做的另一个调整是,当没有匹配 $MD5 时,我不想等待超时。所以基本上我希望 $MD5 或任何不是 $MD5 的东西,这样我就不必坐在那里等待默认超时。我意识到我可以期待 -timeout 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
}