bash에서 set -eux와 set-a 결합

bash에서 set -eux와 set-a 결합

명령을 통해 상속받는 쉘 스크립트가 있습니다

#!/usr/bin/env bash 
set -eux

일관되게 실행되어야 하는 다양한 셸 스크립트 간에 변수 공유를 시작하고 싶기 때문에 일반적으로 이 명령을 사용하여 .env의 변수를 내보냅니다.

set -a 
source .env
set +a

조합의 구문이 적절한가요?

set -euxa
source .env
set +a

답변1

set명령은 args에 제공된 쉘 속성을 수정합니다. 지정하지 않은 속성은 수정되지 않습니다. 이는 한 번의 호출로 여러 속성을 조합하여 설정하거나 set여러 번의 호출로 동일한 결과를 얻을 수 있음을 의미합니다 set.

이 구문은 다음과 같습니다.

set -e
set -u
set -x
set -a

당신에게 똑같은 결과를 줄 것입니다 :

set -euxa

스타일 측면에서 일시적으로 수정되는 속성과 별도로 스크립트의 전체 런타임 동안 지속되는 속성을 유지하는 것이 좋습니다. 귀하의 스크립트에는 다음을 권장합니다.

#!/usr/bin/env bash 
set -eux

set -a 
source .env
set +a

관련 정보