이 쉘 할당은 얼마나 이식성이 있습니까?

이 쉘 할당은 얼마나 이식성이 있습니까?

VAR=${VAR:-값}

목적은 이미 설정되지 않은 경우 환경 변수 VAR을 값으로 설정하는 것입니다.

Bash와 Dash에서 작동하는 것으로 보는데, 이식성이 얼마나 되나요?

답변1

이 배포판은 이식 가능하며 모든 POSIX 셸에서 작동합니다. POSIX 정의이 확장처럼:

${매개변수:-단어}

기본값을 사용합니다. 인수가 설정되지 않았거나 비어 있으면 단어의 확장이 대체됩니다. 그렇지 않으면 인수의 값이 대체되어야 합니다.

VAR그러나 설정되어 null인 경우 이 값도 해당 값으로 설정됩니다 . 값을 VAR설정하려면 VAR(이미 설정되지 않은 경우) 다음을 사용해야 합니다.

VAR=${VAR-value}

콜론을 생략하면 변수가 설정되지 않은 경우에만 대체가 발생합니다.

이전에 표시된 매개변수 확장에서 형식에 콜론을 사용하면 매개변수가 설정 해제되거나 테스트 대상이 비어 ​​있게 됩니다. 콜론을 생략하면 설정 해제된 매개변수만 테스트됩니다.

관련 정보