私のスクリプトには現在次のものがあります。
exec > >(tee -a /tmp/history.log) 2>&1
これにより、すべてのコマンドのstderrとstdoutがログファイルとttyに書き込まれます。残念ながら、これはttyを非常にうるさくするので、端末にstdoutを置き、ファイルにstdoutとstderrの両方を置くことをお勧めします(正しい順序であるため、追加のためにファイルを2回開くと機能しません)。私は生涯にわたってtee /dev/tty
それを操作または使用するために必要な魔法のexec呼び出しを見つけることができません。
ベストアンサー1
tee
ファイル記述子に直接出力することはできませんが、プロセス置換を使用して解決できますcat
。
exec 3>&1 &>log 1> >(tee >(cat >&3))
したがって、stdoutはfd3を介して出力に移動し、stdoutとstderrは両方ともログに移動します。