RubyでIO.popen
を使用して、一連のコマンドラインコマンドをループで実行しています。私はループの外で別のコマンドを実行する必要があります。ループ内のすべてのコマンドが終了するまで、ループ外のコマンドは実行できません。IO.popenを使用してプロセスが終了するのを待つ方法は?
これを実行するためにプログラムを待機させるにはどうすればよいですか?現時点では、最終的なコマンドはすぐに実行されていません。
例:
for foo in bar
IO.popen(cmd_foo)
end
IO.popen(another_cmd)
だから、すべてcmd_foos
はanother_cmd
が実行される前に返却する必要があります。
ただ、追加の注記として:IOメソッドのブロック形式を使用すると、通常は安全です。また、1.9では、ブロック変数の有効範囲が異なるため、ブロック外の同じ名前付き変数の変更を防ぐことができます(警告が表示されます)。 –