2016-04-07 14 views
2

私はbashシェルスクリプトでコマンドを実行していますので、エラー出力を変数に取り込みたいだけです。私が抑制したい標準出力。Bash:標準出力を抑制してエラー出力をキャプチャする

これまでのところ私は間違いなく働いています。だから私はより良いアイデアを思いつき、答えを見つけようとしている。すべてが抑えなっているよう

ERROR=$(svn switch "$NEW_URL" --accept postpone 1>/dev/null 2>&1) & 

が見える:

は、ここでのサンプルコードです。どんな助けもありがとう。ありがとう。

+2

これは[この質問]の複製です(https://stackoverflow.com/questions/962255/how-to-store-standard-error-in-a-variable-in-a-bash-script) –

答えて

2

そのようにすべきである:

error=$({ echo "stdout"; echo "stderr" >&2; } 2>&1 >/dev/null) 
echo "$error" 
stderr 

即ち、第1 stderr->stdoutをリダイレクトし、その後stdoutを抑制する/dev/nullに標準出力をリダイレクトします。あなたのコマンドについては

それは次のようになります。

error=$(svn switch "$NEW_URL" --accept postpone 2>&1 >/dev/null) 

あなたはまた、バックグラウンドでコマンドをプッシュ避けるために&を削除する必要があります。

関連する問題