我要求向远程设备发送命令,并且每当它要求“按CTRL + C中断,其他键继续...”时,我应该再次向远程设备发送“Enter key”。
我写下面scritpt但不知何故它不起作用。
my $session = new Net::Telnet (
Timeout => 30,
Prompt=> '/>/',
Input_log =>\*STDOUT
);
$session->open('device-id');
$session->login('admin','admin');
print "connected and logged in \n\n";
print "Kindly wait till output stored in FILE \n\n";
my @output1=$session->cmd('DSP PATCH:;');
if ($session->waitfor('/Press CTRL+C to break, other key to continue.../')) {
$session->print(''); # Assuming default is \n for print command
}
print @output1;
上述脚本的输出是
connected and logged in
Kindly wait till output stored in FILE
.
.
some output of command send...........
.
Press CTRL+C to break, other key to continue...
然后它超时。
任何想法如何发送命中直到我的远程设备要求我按回车。
答案 0 :(得分:0)
cmd
方法发送命令并等待提示。相反,要么使用print
和waitfor
运行命令(最有可能保存返回的预匹配),要么使用远程消息覆盖该cmd
调用的提示。我建议做前者。
答案 1 :(得分:0)
您是否使用 $session -> dumplog()
进行检查以进行调试?
试试这个:: my $telnet = Net::Telnet->new(Timeout => 30,Errmode => 'return');
取自Here