標準エラー出力 (stderr)

 UNIXの命令やGMTの命令の多くは,エラーメッセージを出力することがあります.これは普通は,標準出力(stdout)とは違う書き出し先に書き込まれます.これを標準エラー出力(stderr)といいます.

 stderrへの書き込みも,stdoutと同様にリダイレクションが可能ですが,この二つの出力を全く違うところにリダイレクションすることもできます.

 stderrのリダイレクションは次のようにして行います:

% UNIXprogram >& errors.log

 stdoutのリダイレクションには「>」を使いましたが,stderrのリダイレクションには「>&」を使うことになります

(注記:以上はCシェルの場合の話です.Bシェル系(shbash)の場合は,「>&」ではなく「2>」を使うことになります).

 では,stderrstderrの両方をそれぞれ別のファイルにリダイレクトするにはどうすればいいのでしょうか.これは次のようにして行います:

% (GMTprogram > output.d) >& errors.log

ここでは,stdoutへの出力はファイルoutput.dstderrへの出力はファイルerrors.logにそれぞれ書き込まれます.なお,小カッコはサブシェルと呼ばれる機能ですが,詳しいことは省略します.

Original Text by Dr. Paul Wessel
Translated by AGATASHI.