"bash -x"란 무엇입니까?

"bash -x"란 무엇입니까?

bash -x최근 한 동료가 나 에게 방해가 되지 않고 bash 스크립트를 디버깅하는 방법을 보여주었습니다 echo $foo.

$ bash -x hello-world.sh 
+ echo 'Hello World'
Hello World

내부적으로 - bash는 이를 어떻게 달성합니까? 확인해보니 통역사를 호출할 때 해당 플래그가 언급된 것 man bash같습니다(아닌 것 같나요?) . -x저는 주로 환경에서 디버깅할 항목과 디버깅하지 않을 항목에 대한 개요 -x나 기타 질문을 찾고 있습니다.

답변1

-xxtrace-oBash 옵션 설정 과 동일합니다. bash 맨페이지 사본에서:

따로 확장한 후간단한 명령,~을 위한주문하다,사례주문하다,선택하다명령 또는 산술~을 위한확장된 값을 표시하는 명령PS4, 그 뒤에 명령과 확장 매개변수 또는 관련 단어 목록이 옵니다.

나는 이것에 많은 "문제"가 있다고 생각하지 않습니다. 실행하는 모든 명령을 인쇄합니다. 쉘 스크립트의 출력을 구문 분석하는 경우 stderr명령이 (일명 파일 설명자 2)에 인쇄되므로 상황이 엉망이 될 수 있지만 stderr이는 극단적인 경우인 것 같습니다.

(내부 스크립트나 대화형 셸 세션 내에서 이 기능을 조건부로 활성화하여 다시 set -x켜고 set +x끌 수도 있습니다.)

관련 정보