コンソールとログファイルのログポリシーをどのように分離しますか?

コンソールとログファイルのログポリシーをどのように分離しますか?

私が入れたとき:

set -xuo pipeline
exec 2> >(tee -a mylog.log) >&2

Bashスクリプトでは、実行された行とエコーメッセージがコンソールとmylog.logにプッシュされます。
を入れないと、set -xuo pipelineエコーメッセージだけがコンソールとmylog.logにプッシュされます。

これらのロギング戦略を分離するには:コンソールの場合はメッセージだけをエコーし​​たい、ファイルの場合は行とメッセージをエコーし​​たいです。

答え1

追加できます

exec 5> mylog.log
BASH_XTRACEFD="5"
set -x

次に、トレースロギングとコンソールエコーロギングのためにmylog.logに移動します。

関連情報