处理来自telnet命令的响应

时间:2015-02-04 10:54:38

标签: ruby telnet

我telnet到我的测试设备,登录后,发出一个命令,给我十行响应。我想将这十行分配给一个数组或任何数据结构来验证响应。例如,我的回答如下所示。我想检查一下行列表中的点点滴滴。我可能想查看192brown0903

  

我有192块沙子,是绿褐色的   颗粒的颜色
11 0909 0903

以下是我的示例代码。如果我将结果指定为数组,则将所有数据指定为第一个元素。

require 'net/telnet'

i = Net::Telnet::new("Host" => '192.111.214.16',
  "Port" => 23,
  "Output_log" => "output.log", # default: nil (no output)
  "Dump_log"   => "dump.log",   # default: nil (no output)
  "Prompt"     => /[#>]/ , # default: /[$%#>] \z/n
  "Telnetmode" => true,         # default: true
  "Timeout"    => 100,           # default: 10
)

i.login("admin", "pass") { |c| print c }
result = i.cmd("String" => "status", "Match" => /a#/)
print result

1 个答案:

答案 0 :(得分:1)

根据documentationcmd返回包含完整输出的字符串。

因此,您应该能够使用split将其作为每行包含一个字符串的数组:

result = i.cmd("String" => "status", "Match" => /a#/).split("\n")