스크립트를 가져올 때 쉘 내장 "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셸 옵션을 설정하거나 설정 해제하면 예상한 출력을 얻지 못할 수도 있습니다.

관련 정보