我在 perl 中使用 expect 来做 ssh,下面是我的代码片段。
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 时,脚本不会终止并且它会连续执行。
处理这种情况的正确方法是什么?
已编辑我观察到 $op 值在 ssh 成功时为 1,而在目标 IP 未启动时为 0。使用 $op 做出决定是正确的方法吗?
我还有一个疑问,当无法访问目标 IP 时,为什么控制超出预期,我的意思是 '$exp->expect(undef,'renjithp>');' 只有在得到正确提示后才应该返回?