使用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;
我需要某种形式的循环来发送回车,直到收到提示。
答案 0 :(得分:0)
我实际上通过执行两个循环来解决问题。在内循环中,我继续将CR发送到命令行,直到我收到“#”符号。当我收到“#”符号时,我会跳出父循环。
while($Defined)
{
while(#ssh->has_line(){
//do stuff
}
$ssh->exec("D\r\n");
if ( index( $output, "#" ) != -1 )
{$Defined = undef;
}else {}
}