使用Perl和SSH时处理提示

时间:2016-02-05 04:20:07

标签: perl ssh

使用perl和Net :: SSH:期待,有没有人知道如何继续按下" \ r \ n"直到你收到某种类型的提示"#"?路由器不接受任何类型的命令来扩展终端长度,例如"终端长度0和#34;。输出命令">"也不支持路由器。我已尝试使用以下命令,但仍然没有运气

    $ssh->send("show vlan all\r\n");
    START:
    $ssh->send("\r\n");
    while ( $ssh->has_line() ) {

        print $output= $ssh->read_line() ."\n";
        print OUTPUT "$output\n";

        }   
    $ssh->waitfor('#',5) or  goto START;

我需要某种形式的循环来发送回车,直到收到提示。

1 个答案:

答案 0 :(得分:0)

我实际上通过执行两个循环来解决问题。在内循环中,我继续将CR发送到命令行,直到我收到“#”符号。当我收到“#”符号时,我会跳出父循环。

while($Defined)
{
while(#ssh->has_line(){
//do stuff
}
$ssh->exec("D\r\n");
if ( index( $output, "#" ) != -1 ) 
{$Defined = undef;
}else {}
}