stderrを失うことなくスクリプト変数をログファイルにリダイレクトする

stderrを失うことなくスクリプト変数をログファイルにリダイレクトする

bash スクリプトで "set -x" を設定するか、実行スクリプトを使用すると、bash -x標準出力とともにすべての引数が画面に印刷されます。

stderrとstdoutを画面に印刷できますが、出力をset -x画面に印刷せずにログファイルにリダイレクトできますか?

アイデアはログに得られるすべての情報を含みますが、通常のstdoutとstderrのみを画面に印刷することです。

ベストアンサー1

user1@mac1:~/tmp$ cat t1.sh
exec 4>shell.log
BASH_XTRACEFD=4

set -x
echo abc
cat ffff

user1@mac1:~/tmp$ bash t1.sh
abc
cat: ffff: No such file or directory
user1@mac1:~/tmp$ cat shell.log
+ echo abc
+ cat ffff
user1@mac1:~/tmp$ 

おすすめ記事