これを行うより良い方法はありますか?
set -x; ls; set +x
# rest of the script
ベストアンサー1
表示される状況には次のものがあります。
( set -x; ls )
このset
操作はサブシェル内のローカル環境を変更しますが、サブシェルの外側の環境は変更しません。
サブシェルは、変数値などの親環境のどれも変更できません。
また、コードはxtrace
最後に無条件にシェルオプションを設定解除します(つまり、呼び出しスクリプトでもそのオプションをオフにします)、サブシェルを使用すると(上記のように)アクティブかどうかにかかわらず、最初からbash -x
元の設定を維持します。set -x
関連: