
-x
bash スクリプトの実行をトレースするために使用します:
#!/bin/bash -x
x=1
y=2
実行中に出力に送信する
+ x=1
+ y=2
質問: スクリプトの途中でトレース モードを停止/一時停止し、再度有効にするにはどうすればよいでしょうか? これは y=2 >/dev/null のようなものではないことに注意してください。
詳細モード(#!/bin/bash -v
)でも可能でしょうか?
答え1
のset
組み込みこれらのオプションを制御します。
スイッチをつけるxtrace
:
set -x
オフにするには:
set +x
それはプラスとマイナスの逆の論理ですが、それが現実です。
同様に、 でサポートされている他のすべてのオプションもset
コマンド ライン(*)で設定できるため、などbash -u
と同じですset -u
。リンクされた説明にそれらのリストがあり、help set
コマンド ラインにも表示されます。
一部のオプションには長い形式もあります。たとえば、 はset -o xtrace
と同じですset -x
。
(* ただし、その逆は言えません。 すべてのコマンドライン オプションが で設定できるわけではありません。set
たとえば、 に-l
は同等のものはなく、 にも同等のものはありません-c
。)