bash 스크립트에서 set -xe가 수행하는 작업

bash 스크립트에서 set -xe가 수행하는 작업

나는 bash 쉘 스크립트가 다른 명령보다 먼저 이것을 가지고 있는 것을 보았습니다.

나는 그것이 무엇인지 알고 있습니다 set -x. 그러나 시도해 보면 -xe아무 것도 바뀌지 않는 것 같습니다.

그것이 무엇인지 아는 사람이 있나요? 나는 그것에 관한 어떤 문서도 찾을 수없는 것 같습니다.

답변1

이 문서는 다음 위치에 있습니다.4.3.1 내장 컬렉션

-e는 다음과 같습니다:

단일 단순 명령(단순 명령 참조), 목록(목록 참조) 또는 복합 명령(복합 명령 참조)으로 구성될 수 있는 파이프라인(파이프라인 참조)이 0이 아닌 상태를 반환하는 경우 즉시 종료합니다. 실패한 명령이 while 또는 Until 키워드 바로 다음에 오는 명령 목록의 일부이거나, if 문에 있는 테스트의 일부이거나, && 또는 || 내에서 실행되는 명령인 경우 쉘은 종료되지 않습니다. 마지막 && 또는 || 뒤에 오는 명령을 제외하고 파이프라인의 모든 명령을 나열하거나 명령의 반환 상태가 !로 반전됩니다. -e가 생략되었을 때 명령이 실패했기 때문에 하위 쉘 외부의 복합 명령이 0이 아닌 상태를 반환하는 경우 쉘이 종료되지 않습니다. ERR 트랩이 설정되면 쉘이 종료되기 전에 실행됩니다.

이 옵션은 셸 환경과 각 하위 셸 환경(명령 실행 환경 참조)에 개별적으로 적용되며 하위 셸의 모든 명령을 실행하기 전에 하위 셸이 종료될 수 있습니다.

-e를 생략한 컨텍스트에서 복합 명령 또는 셸 함수가 실행되는 경우 -e가 설정되고 명령이 오류를 반환하더라도 복합 명령 또는 함수의 본문 내에서 실행되는 모든 명령은 -e 설정의 영향을 받지 않습니다. 상태. -e를 생략한 컨텍스트에서 복합 명령이나 쉘 함수가 실행될 때 -e를 설정하면 함수 호출이 포함된 복합 명령이나 명령이 완료될 때까지 설정이 적용되지 않습니다.

관련 정보