スクリプトをインポートするときにシェル組み込み「source」が呼び出すコマンドを印刷する方法はありますか? [コピー]

スクリプトをインポートするときにシェル組み込み「source」が呼び出すコマンドを印刷する方法はありますか? [コピー]

sh、bashなどには、すべて-xスクリプトで実行される各コマンドを示すフラグがあります。これはデバッグに便利です。

$ sh -x my_script.sh

+ case $SOMETHING_DIR in
+ unset SOMETHING_SCRIPT_SOURCE
+ something_process_parameters
+ local SOMETHING_AUTO_MODE
+ SOMETHING_AUTO_MODE=use
+ something_supports_source_options
++ something_echo '[ $# -gt 0 ] && something_echo $1'
++ command printf '%s\n' '[ $# -gt 0 ] && something_echo $1'
++ . /dev/stdin yes

これを行う方法はありますかsource

$ source my_source.sh

ベストアンサー1

はい、set -xドットスクリプトをインポートする前に(or)を使用して現在のシェルでトレースを有効にし、(or)を使用してトレースを無効にできます。set -o xtraceset +xset +o xtrace

set -x
source ./my_source.sh
set +x

ソーススクリプトがxtraceシェルオプションを設定または設定解除すると、予想される出力が得られないことがあります。

おすすめ記事