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
是的,您可以在获取点脚本之前使用
set -x
(或set -o xtrace
)在当前 shell 中启用跟踪,然后使用set +x
(或set +o xtrace
)禁用跟踪。请注意,如果您源代码设置或取消设置
xtrace
shell 选项,您可能无法获得预期的输出。