0

我想知道是否有一个选项可以抑制我通过 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”。所以我不必过滤脚本中的返回来忽略原始命令和提示。

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

4

1 回答 1

0

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

于 2013-03-22T19:07:01.627 回答