Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > open3ライブラリ > Open3モジュール > pipeline_r
pipeline_r(*cmds) -> [IO, [Thread]][permalink][rdoc]pipeline_r(*cmds) {|last_stdout, wait_thrs| ... } -> ()指定したコマンドのリストをパイプで繋いで順番に実行します。最後の コマンドの標準出力を受けとる事ができます。
例:
require "open3"
Open3.pipeline_r("yes", "head -10") {|r, ts|
p r.read #=> "y\ny\ny\ny\ny\ny\ny\ny\ny\ny\n"
p ts[0].value #=> #<Process::Status: pid 24910 SIGPIPE (signal 13)>
p ts[1].value #=> #<Process::Status: pid 24913 exit 0>
}
[SEE_ALSO] Open3.#popen3