3

まず最初に、スクリプトを期待するのは非常に新しいことを認めます。私は約 3 日間スクリプトで遊んでいます。私は O'Reilly の本を手に取り、それを読み進めています。しかし、私は期待の流れについて少し困惑しており、いくつかのガイダンスを望んでいました.

以下のコードスニップがあります。if ステートメントの上半分は完全に機能します。ただし、elseif 部分は期待どおりに機能しません。順不同で実行されます。最初に puts 行を処理し、次に send コマンドを実行します。なぜこれを行うのか、どのように順番に実行するのか疑問に思っています。

また、私がやりたいもう 1 つの調整は、$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
}
4

1 に答える 1

3
于 2012-05-18T18:07:13.500 に答える