2013-03-22 132 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