Ruby停止Telnet echo发送的命令

时间:2013-03-22 18:57:43

标签: ruby telnet

我想知道是否有一个选项来禁止我通过Ruby Telnet库在远程计算机上运行的命令。这是代码:

server = Net::Telnet::new("Host" => $hosts,
                          "Timeout" => 10,
                          "Prompt" => /[$%#>]/n)
server.login($user, $pass)
server.cmd("ls -1 /tmp/myfile.txt") do |c|
    puts c
end

输出将是:

ls -1 /tmp/myfile.txt
/tmp/myfile.txt
$

其中$是提示符。我想看到只返回“/tmp/myfile.txt”。所以我不必过滤脚本中的返回值来忽略原始命令和提示符。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

如果它总是在最后输出一个shell提示符,那么剥离最后一行输出呢?我不相信NET :: Telnet内部有任何特殊内容可以防止这种情况发生。您也可以尝试使用PTY with expect方法来处理telnet。