Net :: Telnet使用getline()或getlines()没有得到所有行

时间:2012-09-05 13:12:02

标签: perl telnet

如果我使用终端窗口telnet到设备并输入show打印配置它打印一定数量的行和-- more --在底部,你可以按键盘上的Return或Space获得命令的其余部分,直到它全部显示在屏幕上,你知道它是怎么回事。

$t->print('show');

问题不是

while (my $line = $t->getline()) {
    print $line;
}

my @lines = $t->getlines(All => 0); # or All => 1 

给了我所有的行,就像终端窗口那样的起始行。

我无法在该框中使用cmd()ExpectNet::OpenSSH(脚本运行的机器,我不是在谈论设备),没有gcc并且有一个残缺的软件包管理器。 (阅读:无法安装IO::Pty

如何获取命令的其余输出?

1 个答案:

答案 0 :(得分:1)

如果您使用的show没有关闭其分页的选项,等待每个页面后的按键,则必须在适当的时间->print(''),然后发送连续字符