UNIXの命令やGMTの命令の多くは,エラーメッセージを出力することがあります.これは普通は,標準出力(stdout)とは違う書き出し先に書き込まれます.これを標準エラー出力(stderr)といいます.
stderrへの書き込みも,stdoutと同様にリダイレクションが可能ですが,この二つの出力を全く違うところにリダイレクションすることもできます.
stderrのリダイレクションは次のようにして行います:
% UNIXprogram >& errors.log
stdoutのリダイレクションには「>」を使いましたが,stderrのリダイレクションには「>&」を使うことになります
(注記:以上はCシェルの場合の話です.Bシェル系(shやbash)の場合は,「>&」ではなく「2>」を使うことになります).
では,stderrとstderrの両方をそれぞれ別のファイルにリダイレクトするにはどうすればいいのでしょうか.これは次のようにして行います:
% (GMTprogram > output.d) >& errors.log
ここでは,stdoutへの出力はファイルoutput.d,stderrへの出力はファイルerrors.logにそれぞれ書き込まれます.なお,小カッコはサブシェルと呼ばれる機能ですが,詳しいことは省略します.