![이 쉘 할당은 얼마나 이식성이 있습니까?](https://linux55.com/image/59390/%EC%9D%B4%20%EC%89%98%20%ED%95%A0%EB%8B%B9%EC%9D%80%20%EC%96%BC%EB%A7%88%EB%82%98%20%EC%9D%B4%EC%8B%9D%EC%84%B1%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
VAR=${VAR:-값}
목적은 이미 설정되지 않은 경우 환경 변수 VAR을 값으로 설정하는 것입니다.
Bash와 Dash에서 작동하는 것으로 보는데, 이식성이 얼마나 되나요?
답변1
이 배포판은 이식 가능하며 모든 POSIX 셸에서 작동합니다. POSIX 정의이 확장처럼:
${매개변수:-단어}
기본값을 사용합니다. 인수가 설정되지 않았거나 비어 있으면 단어의 확장이 대체됩니다. 그렇지 않으면 인수의 값이 대체되어야 합니다.
VAR
그러나 설정되어 null인 경우 이 값도 해당 값으로 설정됩니다 . 값을 VAR
설정하려면 VAR
(이미 설정되지 않은 경우) 다음을 사용해야 합니다.
VAR=${VAR-value}
콜론을 생략하면 변수가 설정되지 않은 경우에만 대체가 발생합니다.
이전에 표시된 매개변수 확장에서 형식에 콜론을 사용하면 매개변수가 설정 해제되거나 테스트 대상이 비어 있게 됩니다. 콜론을 생략하면 설정 해제된 매개변수만 테스트됩니다.