0

Perl を使用して、一部の Cisco ルーターでスクリプトを自動化しています。基本的な実装は、指定されたルーターのリストに次々に接続し、必要な情報を収集することです。スクリプトが新しいルーターに接続するたびに、すべてのルーターで同じパスワードを要求します。

パスワード要求をキャプチャしてパスワードを入力する次のコードがあります。

    $session->expect(5, 
        [ 'password:' => sub {
            $session->send("$password\r");
                #exp_continue;
            }]);   

問題は、なんらかの理由でパスワードが初めて受け入れられない場合があることです。パスワードが受け入れられるまで上記のコードを繰り返す方法はありますか?

4

1 に答える 1

2

超簡単な実装:

my $tries = 0;
my $max = 5;
while ($tries < $max) {
    $tries++;
    # do your stuff
    # assuming that you can assess the success of the password sending:
    last if <test for successful condition>;
}

試行の最大回数は、状況に適したものに設定できます。

于 2014-09-11T00:27:58.450 に答える