2013-03-22 129 views
0

我想知道是否有一个选项可以禁止我通过Ruby Telnet库在远程机器上运行的命令。这里是代码:Ruby stop telnet echo发送的命令

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”返回。所以我不需要在我的脚本中过滤返回值来忽略原始命令和提示。

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

回答

0

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

+0

我想我可以通过在输出的最后一行剥离提示离开。但是,我不明白为什么命令本身得到回应..我希望在Ruby Telnet库中有一些选项可以关闭回显。 – 2013-03-22 20:25:04

+0

那么与PTY +期待您可以将详细设置为false。查看:http://www.ruby-forum.com/topic/83119 – 2013-03-22 21:35:05