1

私はルーターにtelnetで接続するexpectスクリプトを作成し、いくつかの構成を行い、いくつかの出力を期待しています。

必要なプロンプトが使用できない場合は、それを待機してタイムアウトになります。では、これをどのように処理してエラーメッセージを出力する必要がありますか。

set timeout 30;

puts "Telnet to $IP 2361\n\n";
spawn telnet $IP 2361;

expect ">";

send "ACT-USER::$user_name:1::$password;";
expect ">";

期待値が受信されない場合、エラーメッセージを処理して出力するにはどうすればよいですか?

4

1 に答える 1

3

タイムアウトをうまく処理するには、もう少し複雑な使用が必要ですexpect

expect {
    ">" {
        # Got it; don't need to do anything here because we run the code after
    }
    timeout {
        send_user "timed out, oh no!\n"
        exit 1
    }
}

# Now we put the rest of the script...
send "ACT-USER....blah"
# ...

(キーを押すことをシミュレートするためsendに)あなたが終わっていないことに私は驚いていることに注意してください。\rReturn

于 2012-09-07T10:57:23.337 に答える