bash のトレース/詳細モードを一時的に変更するにはどうすればいいですか?

bash のトレース/詳細モードを一時的に変更するにはどうすればいいですか?

-xbash スクリプトの実行をトレースするために使用します:

#!/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。)

関連情報