2017-06-21 14 views
0

スクリプトで2> & 2を使用していて、stderrが端末に表示されず、代わりに/ dev/fd /にリダイレクトされることを期待しています。依然として端末にエラーが表示されます。私の理解に何か問題がありますか?おかげさまで 2>&2は意味がありますか?もしそうなら、それは何をしますか?

編集: 標準エラーをログファイルと端末にリダイレクトしたかったのですが、私は2は、そのコマンド1作品が、コマンド2つのdoesnのをやった> &を理解したかった

この正常に動作します(ヒットと裁判を経て発見)

exec 2> >(while read -r line; do printf '%s %s\n' "$(date --rfc-3339=seconds)" "$line" | tee -a $LOG_FILE; done >&2) 

しかし、これがないではない

exec 2> >(while read -r line; do printf '%s %s\n' "$(date --rfc-3339=seconds)" "$line" | tee -a $LOG_FILE; done) 

't

+0

これは、bashエラーをstderrにリダイレクトしていることを意味しています。ここでは何もしませんでした。 '2>'を試してみて、http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html – Tamar

+0

を読んでください。標準エラーにリダイレクトする必要がありますか? –

+0

端末からの実行時の標準エラーです – Tamar

答えて

1

いいえ、意味がありません。

2>&2を使用すると、ファイル記述子2(stderr)をファイル記述子2に関連付けられているリソースにリダイレクトします。したがって、何も変更しないで、stderrが既に指示されている場所にリダイレクトします。

stderrのデフォルトリソースは端末です。そのため、stderrの出力は端末に表示されます。

関連する問題