私はperlでexpectを使用してsshを実行します。以下は、私のコードsnipetです。
my $exp = Expect->spawn("ssh renjithp\@192.168.1.12") or die "could not spawn ssh";
my $op = $exp->expect(undef,'renjithp>');
print "*$op*";
ホストに到達できない場合(宛先IPがダウンしている場合)にエラーを処理したかったのですが、IPに到達できない場合はダイがヒットするという印象を受けましたが、間違ったIPスクリプトを指定すると、終了せず、継続的に実行されます。
このシナリオを処理する正しい方法は何ですか?
編集済み私は、sshが成功した場合は$ op値が1であり、宛先IPが起動していない場合は0であることを確認しています。$ opを使用して決定を下すのは正しい方法ですか?
もう1つ疑問があります。宛先IPに到達できない場合、制御が期待から外れる理由は、「$ exp-> expected(undef、'renjithp>');」を意味します。プロンプトが正しく表示された後にのみ戻る必要がありますか?