stderrとstdoutに書き込む$LOG
と同時に、スクリプトからコンソールに印刷する必要があります。
スクリプトには多くのコマンドがあるため、各コマンドをリダイレクトするのは良い解決策ではありません。
これを試しましたが、期待どおりに動作しません。
#!/bin/bash
LOG=/var/tmp/log
#...
exec > $LOG 2>&1
私の目標は、stdoutとstderrに書く$LOG
だけでなく、(コンソールから)stdoutに書くことです。可能ですか?
答え1
答え2
これが最もクリーンなソリューションであるかどうかはわかりませんが、私にとっては効果的でした。
#!/bin/bash
LOG=/var/tmp/log
(
# lots of commands
# ...
) 2>&1 | tee $LOG
しかし、@sebasthはより良いソリューションを提供しました。
#!/bin/bash
LOG=/var/tmp/log
exec &> >(tee $LOG)
#...