我正在使用Perl在一些Cisco路由器上自动化脚本。基本实现是它连接到给定的路由器列表,一个接一个地收集所需的信息。每次脚本连接到新路由器时,它都会请求密码,这对所有路由器都是相同的。
我有以下代码来捕获密码请求并输入密码:
$session->expect(5,
[ 'password:' => sub {
$session->send("$password\r");
#exp_continue;
}]);
问题在于,无论出于何种原因,有时第一次不接受密码。有没有办法重复上面的代码,直到接受密码?
答案 0 :(得分: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>;
}
您可以将最大尝试次数设置为适合您情况的任何内容。