2016-08-12 61 views
1

我正在使用ruby脚本向UT发送命令。我已经成功地建立了远程UT的Telnet会话。发送的命令执行一系列操作并给我统计信息。RUBY脚本:连接到Telnet会话时等待任何输出

最初,在成功发送命令后,我设计了UT向发送的脚本发送OK。我如何收到统计信息?脚本不会事先知道命令的输出,每个命令都会有自己的字符串。

使用红宝石,我怎么能告诉telnet :: waitfor()命令等待这么长的持续时间,但如果UT发送一些东西会突然出现。

要读好,我用:

[email protected]({"String" => "OK\n", "Timeout" => time_out}) 

其中,newsession的持有telnet会话连接。

@newSession = Net::Telnet::new("Session"  => @session, 
            "Host"  => @ut_ip, 
            "Port"  => @port_num, 
            "Timeout" => 10, 
            "Prompt" => /[$%#>] \z/n) 

我不能使用“匹配”或“提示”,因为我不知道我会得到什么。帮帮我吧,谢谢。

回答

0

让我们阅读Net::Telnet文档:

对于某些协议,这将是可能的,当你创建的Telnet对象,并使用cmd()调用指定一次提示选项;对于其他人,您必须指定响应顺序作为每个cmd()呼叫的匹配选项,或直接呼叫puts()waitfor(); 对于其他人,您将不得不使用sysread()而不是waitfor()并自己解析服务器响应

所以,你即将自己处理IO#preprocess吧。