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

最後に常にシェル プロンプトを出力する場合、出力の最後の行を削除するのはどうですか? これを防ぐために NET::Telnet の内部に特別なものがあるとは思いません。telnet を処理する代わりに、expect メソッドで PTY を使用することもできます。

于 2013-03-22T19:07:01.627 に答える