我想知道是否有一个选项来禁止我通过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”。所以我不必过滤脚本中的返回值来忽略原始命令和提示符。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
如果它总是在最后输出一个shell提示符,那么剥离最后一行输出呢?我不相信NET :: Telnet内部有任何特殊内容可以防止这种情况发生。您也可以尝试使用PTY with expect方法来处理telnet。