perl Net :: Telnet模块,telnet shell没有提示符

时间:2010-08-27 03:37:16

标签: perl module telnet

我正在使用的telnet主机没有提示符(当它完成时它只是进入空白换行符),那么,我应该如何使用Net::Telnet perl模块?

我尝试将提示设置为// '' /\s//\s*/没有一个有效。

''错误地说它无效,// /\s//\s*/只是超时。

my $t = new Net::Telnet (Timeout => 10, Prompt => '/\s*/');

编辑:这种连接很好,但是当它尝试发出命令时,它会因为无法识别提示而超时。;

1 个答案:

答案 0 :(得分:4)

如果无法让远程端发出提示,则无法使用cmdlogin,因为它们依赖于提示知道命令何时完成。

您可以使用$telnet->print('command')发出命令。如何读取输出取决于您期望识别输出结束的方式。

如果最后一行有一些可识别的模式,您可以在列表上下文中使用waitfor

如果您知道将有多少行输出,您可以使用getline,并阅读那么多行。

在最坏的情况下,我可能会使用getline超时,并假设命令在N秒后没有输出完成。