【问题标题】:Net::Telnet using getline() or getlines() not getting all linesNet::Telnet 使用 getline() 或 getlines() 未获取所有行
【发布时间】:2012-08-30 05:17:22
【问题描述】:

如果我使用终端窗口远程登录到设备并输入打印配置的show,它会打印一定数量的行并在底部打印-- more --,您可以按几次键盘上的回车键或空格键来获取命令的其余部分,直到它全部显示在屏幕上,你知道它是怎么回事。

$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

我可以做些什么来获得命令的其余输出?

【问题讨论】:

  • 问题仍然存在,我不得不通过找到一个返回配置小得多的部分的命令来解决这个问题。

标签: perl telnet


【解决方案1】:

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

【讨论】:

  • 忘了我有这个问题,呵呵。是的,在一些有问题的设备上做到了,有时我不得不在简短的sleep() 结束后发送"" 有时" "(空格..),在其他设备上,即使这样也没有用,但它更好总比没有。
猜你喜欢
  • 1970-01-01
  • 2011-10-30
  • 1970-01-01
  • 2023-01-21
  • 1970-01-01
  • 2016-12-07
  • 2018-11-29
  • 2011-02-23
  • 2020-02-27
相关资源
最近更新 更多