bashスクリプトがあり、set -xを使用してスクリプトの一部をキャプチャし、その出力をファイルにリダイレクトしたいと思います。
ENVFILE設定は表示できますが印刷されます。
set -xの出力をstd outの代わりにファイルにキャプチャする方法はありますか?
#!/bin/sh
...a bunch of stuff....
if [ -e ${ENVFILE} ]; then
set -x
. ${ENVFILE}
set +x
fi # ! -e PROJOB
... a bunch of stuff ....
ベストアンサー1
bashを使用している場合は、次のものを使用できます。BASH_XTRACEFD:
...
if [ -e ${ENVFILE} ]; then
BASH_XTRACEFD=3
set -x
. ${ENVFILE}
set +x
unset BASH_XTRACEFD
fi # ! -e PROJOB
...
次に、次のようにスクリプトを実行します。
/path/to/script 3>/path/to/trace.output
すでにFD 3を使用している場合は、3以外のファイル記述子を使用してください。