2
ので、私は問題をすぐに見ることができ、私は完全なプログラム出力(stdoutとstderr)を格納するログファイルmerged.log
を持つようにしたいので、私は非エラーログと一緒にエラーログを参照してください、だけでなく、唯一のエラー行のファイルerror.log
を持つことができますプログラム。私はtee
を使用しようとしましたが、この特定のタイプのリダイレクトを実行する方法を理解できません。例えばプログラムのstdoutとstderrを1つのファイルにリダイレクトし、同じstderrを別のファイルにリダイレクトする方法はありますか?
、私は次のJavaScriptのプログラム
// outputter.js
console.log('this is stdout');
console.error('this is stderr');
を持っているならば、2つのログファイルは、bashで
# merged.log
this is stdout
this is stderr
と
# error.log
this is stderr
これは、 'stderr'と 'stdout'のメッセージの元の順序を保持しますか?例えば '。/ a.out'を'(ls。nonexistent; ls。exists) 'に置き換えると、それはインタリーブする通常の出力とエラー出力を持つはずです。ご注文の制限について言えば、あなたの答えは受け入れられるかもしれません。 – janos
@janosは、私はあなたの提案のコマンドを実行し、期待どおりに正確にstdoutとstderr出力し – almel
@rogerあなたのコマンドの動作をインターリーブんが、いくつかのあいた後、私が発見した私は削除した場合、 '1>&2 '右の最後の括弧の前に、I 2つのログファイルに期待される出力が得られます。 fd 1を2にリダイレクトする必要があるのはなぜですか? – almel