zsh 등의 shell script에서 다음과 같은 형태로 변수할당이 되는 경우가 있음.
rval=${ZDOTDIR:-$HOME}
이 경우, ZDOTDIR
란 변수가 비어있지 않은 경우에는 rval
는 ZDOTDIR
과 같은 값을 가지게 된다.
rval=$ZDOTDIR
과 같은 결과.- 변수가 비어있다는 뜻은 empty 문자열이거나 undefined인 경우를 가르킴.
하지만, ZDOTDIR
란 변수가 비어있는 경우엔 HOME
이라는 변수의 값이 할당된다. 즉 다음과 같은 결과임.
rval=$HOME
다른 유용한 할당방법으로는 :=
이 있음.
이는 기존에 할당이 되어있는지를 체크하여 기존에 값을 가진 경우는 그대로 유지하고,
비어있는 경우에만 할당을 수행한다.
echo "${VAR1:=default}"
VAR
가 이전에 할당된 경우에는 그 값을 그대로 유지.VAR
이 이전에 정의안된 경우나 빈문자열을 값으로 가진 경우,default
문자열을 값으로 가지게 됨.
다음의 script는 사용법을 간략히 보여줌.
#!/bin/env bash
t=predefined
echo ${t:=new_value}
unset t
echo ${t:=new_value}
결과는 다음과 같음.
predefined
new_value
다음의 표는 위의 방법들을 포함하여 다른 다양한 방법을 정리한 것임.
References
https://unix.stackexchange.com/questions/122845/using-a-b-for-variable-assignment-in-scripts
'Linux' 카테고리의 다른 글
[linux] cut 사용법 (1) | 2023.12.11 |
---|---|
[Linux] tmux (Terminal MUltipleXer) 사용하기 (1) | 2023.11.19 |
[Linux] SystemV, BSD, 그리고 Linux 간략 역사 (0) | 2023.10.23 |
[Linux] 특정 조건의 파일들 찾아 특정 명령어 적용하기 : find -exec (1) | 2023.10.22 |
[Linux] SIGNAL 에 대한 요약 정리. (0) | 2023.10.22 |