2012-06-18 7 views
27

Bashどのようにstderrを変数にキャプチャしますか?Bashどのようにstderrを変数にキャプチャしますか?

私はどのようにして変数にSTDERROR出力を送ればいいの私のbashスクリプトのこの内部

sh -c path/myExcecutable-bin 2>&1 =MYVARIABLE 

ような何かをしたいですか?

MYVARIABLE="$(path/myExcecutable-bin 2>&1)" 

注これは同じ変数にstdoutとstderrをインターリーブしていること:変数にstdoutstderrの両方を保存するには

+2

このStackOverflowの[スレッド](http://stackoverflow.com/questions/962255/how-to-store-standard-error-in- a-variable-in-a-bashスクリプト)があなたの質問に答えるはずです。 –

+0

多くの関連スレッドと[いくつかの解決法](http://mywiki.wooledge.org/BashFAQ/002) – ormaaj

答えて

55

だけstderr変数にを保存するには:

MYVARIABLE="$(path/myExcecutable-bin 2>&1 > /dev/null)" 
+5

を参照してください。stderrとstdoutの両方を変数に保存することに注意してください。 'stderr'だけが必要なときは' 2>&1>/dev/null'を使います。 –

+0

@IgorChubin良い点。私は、OPがやりたかったように見えたところで私の元の答えを立てていましたが、それは必ずしも実際に望んでいたものではありません。私の変更を参照してください。 –

+0

"stdout' _and_' stderr' "にする必要がありますか? –

関連する問題