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 xtrace
set +x
set +o xtrace
set -x
source ./my_source.sh
set +x
ソーススクリプトがxtrace
シェルオプションを設定または設定解除すると、予想される出力が得られないことがあります。