すべての POSIX オペレーティング システムには、stdin、stdout、および stderr の 3 つのストリームがあります。 stdin は、stdout または stderr を受け入れることができる入力です。 stdout はプライマリ出力で、>
でリダイレクトされます 、 >>
、または |
. stderr はエラー出力であり、例外がコマンドに渡されたりファイルに書き込まれて壊れたりしないように、個別に処理されます。通常、これは何らかのログに送信されるか、stdout がリダイレクトされた場合でも直接ダンプされます。両方を同じ場所にリダイレクトするには、次を使用します:
$command &> /some/file
ストライク>
編集 :上記のソリューションは移植性がないことを指摘してくれた Zack に感謝します。代わりに使用してください:
$command > file 2>&1
エラーを黙らせたい場合は、次のようにします:
$command 2> /dev/null
その部分は stderr に書き込まれます。2>
を使用してください リダイレクトします。例:
foo > stdout.txt 2> stderr.txt
または、同じファイルに入れたい場合:
foo > allout.txt 2>&1
注:これは (ba)sh で機能します。シェルの構文が適切かどうかを確認してください