본문 바로가기
지식/Linux

shell script - := 와 :- 의 차이

by TheEC 2025. 12. 30.

:-와 :=는 둘 다 “unset이거나 빈(null) 변수일 때만 동작한다”는 점은 같지만, 값을 변수에 실제로 저장하느냐에서 차이가 난다.

  • ${var:-word}

         var가 unset 또는 빈 문자열이면 word를 그냥 사용만 한다.

         var 변수 자체에는 아무 것도 대입되지 않는다.

 

  • ${var:=word}

         var가 unset 또는 빈 문자열이면 word를 var에 대입한 뒤, 그 값을 사용한다.

         즉 “기본값을 설정하고, 그 값을 변수에도 저장”하는 형태다.

 

 

unset VAR

echo "${VAR:-default}"  # 화면에는 default, 하지만 VAR는 여전히 unset
echo "VAR=[$VAR]"       # VAR=[]

unset VAR

echo "${VAR:=default}"  # 화면에는 default, 그리고 VAR에 default가 들어감
echo "VAR=[$VAR]"       # VAR=[default]

 

여기서 보듯이 ${VAR:-default}는 “그때만 임시로 default 사용”, ${VAR:=default}는 “없으면 default로 채워 넣고 그 이후에도 계속 쓸 수 있게 저장”이라는 차이가 있다.

'지식 > Linux' 카테고리의 다른 글

shell script - NAME=${1:-"DEFAULT"}  (0) 2025.12.30
ASAN - shadow memory  (0) 2025.11.28
Samba 설정  (1) 2023.12.03
Raspberry Pi - 디지털 액자 만들기  (0) 2023.06.10
Raspberry Pi - 디지털 액자 (Dynaframe)  (0) 2023.06.10

댓글