2

Rubyスクリプト内からプログラムを実行したいのですが、プログラムのSTDOUTとSTDERRを混在させずに別々にキャプチャしたいので2>&1、コマンドシェルで実行してもうまくいきません。

これらを一時ファイルに送信して、一時ファイルをスクリプトに読み戻す必要はありません。Ruby スクリプトでこれらの両方を直接取得する方法はありますか?

4

1 に答える 1

7

Open3 クラスを使用する必要があります。stdin、stdout、および stderr を個別の IO オブジェクトとして返すことができるシェル コマンドを実行するメソッドを提供します。

http://ruby-doc.org/stdlib-1.9.3/libdoc/open3/rdoc/Open3.html#method-c-popen3

于 2012-11-30T05:39:36.420 に答える