stdoutとstderrをログファイルにコピーし、スクリプト自体のコンソールに残します。

stdoutとstderrをログファイルにコピーし、スクリプト自体のコンソールに残します。

Bashを使用してstderrとstdoutをログファイルにコピーしてコンソールに表示するにはどうすればよいですか?

execを使用してスクリプト自体でこれを実行したいと思います。

私は前に試しました

exec &>> log.out

echo "This is stdout"
echo "This is stderr" >&2

しかし、上記はコンソールに何も印刷しません。 Bashでどのようにこれを達成できますか?

ベストアンサー1

あなたが探しているtee

man tee詳細より。

それを組み合わせるexecにはプロセスの交換。 (man bash詳細より。)

exec &> >(tee  log.out)
echo "This is stdout"
echo "This is stderr" >&2

おすすめ記事