環境変数を使用してxtraceを開く

環境変数を使用してxtraceを開く

Bashには、 ""オプションをオンにすると-x(シンボル名はだと思いますxtrace)、Bashが実行されたときにスクリプトの各行を出力する便利な機能があります。

私はこの動作を達成する2つの方法を知っています。

  • スクリプト自体では、次のように言います。set -x
  • コマンドラインから-xBashにオプションを渡します。

環境変数でこのオプションを有効にする方法はありますか?

(特に Bash を直接呼び出すわけではないため、オプションを渡すことができず、興味のあるスクリプトが圧縮されたアーカイブの内部にあるのであまり再構築したくありません。環境変数を設定できれば、プロセス継承かもしれません...)

  • マンページにはについての内容が記載されていますがBASHOPTS、私が試したときにBashは読み取り専用だと言いました。 (マンページにこの内容を言及していないことに感謝します。)

  • 今回もSHELLOPTS読み取り専用のようです。

  • あなたは選ぶことができますどのFDと一緒に使用されますBASH_XTRACEFD。ただし、まずトレースをオンにする必要があります。

答え1

envフラグを無視するために使用されますreadonly

env SHELLOPTS=xtrace ./yourscript

または、親シェルにいる場合は、環境にコピーしてサブシェルにコピーすることもできます(ありがとうset -xexport SHELLOPTSジョー・カサドンテこのため):

set -x           # set xtrace flag
export SHELLOPTS # copy all options, including xtrace flag, to environment
./yourscript

関連情報