私はRubyを使用しており、ルーターにsshして、arraryに保存されている一連のコマンドを実行するための次のコードがあります。
result = PTY.open do |masterIO, slaveFile|
r, w = IO.pipe
slaveFile.raw!
pid = spawn(sshCommand, :in=>r, :out=>slaveFile)
r.close; slaveFile.close;
output = ""
@commands.each do |subCommand|
w.puts subCommand
masterIO.each_line { |line| output += line }
end
next ouput
end
私の問題は、それmasterIO.each_line { ... }
が永遠にハングすることです。上記のコードでは、閉じる必要があると思いますが、w
これを記述して希望どおりに動作させる方法がまだわかりません。
注:サブコマンドは即時ではないことに注意する必要があるため、最初のコマンドの実行が完了するまで待機してから 2 番目のコマンドを記述する必要があります。
編集 :
すべてのコマンドを「&&」で連結するだけでよいと思います。これにより、それらを順番に実行できますが、これらのコマンドの出力を正常に読み取る方法はまだわかりません