Bash

有沒有辦法列印shell內置source在採購腳本時呼叫的命令?

  • September 27, 2021

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)禁用跟踪。

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

請注意,如果您原始碼設置或取消設置xtraceshell 選項,您可能無法獲得預期的輸出。

引用自:https://unix.stackexchange.com/questions/670757