![스크립트를 가져올 때 쉘 내장 "source"가 호출하는 명령을 인쇄하는 방법이 있습니까? [복사]](https://linux55.com/image/196271/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EA%B0%80%EC%A0%B8%EC%98%AC%20%EB%95%8C%20%EC%89%98%20%EB%82%B4%EC%9E%A5%20%22source%22%EA%B0%80%20%ED%98%B8%EC%B6%9C%ED%95%98%EB%8A%94%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%9D%B8%EC%87%84%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
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
셸 옵션을 설정하거나 설정 해제하면 예상한 출력을 얻지 못할 수도 있습니다.