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
셸 옵션을 설정하거나 설정 해제하면 예상한 출력을 얻지 못할 수도 있습니다.