2016-08-12 89 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吧。