본문 바로가기
Linux

[zsh] 환경변수 사용하기: Referencing Environment Variable

by ds31x 2024. 1. 29.

다음과 같은 shell script 는 source test.zsh 를 zsh의 설정파일 .zshrc의 마지막에 추가해줌.

echo "source test.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc

 

여기서 ${환경변수}환경변수 의 이름의 environment variable의 값으로 대치되는 것임.

 

ZDOTDIR 은 zsh에서 사용되는 환경변수 중 하나로서 zsh의 configuration files 이 있는 directory의 path를 가짐.

  • ZDOTDIR 에 있는 configuration files는 다음과 같음.
  • .zshrc, .zshenv, .zprofile, .zlogin 임.
  • 설정되어 있지 않은 경우도 많음.

HOME 은 일반적으로 현재 사용자의 home directory의 path를 가지는 환경변수임.

  • /home/사용자_계정명 이 일반적인 형태임.

 

위의 주의할 점은 :- operator임.

 

${ZDOTDIR:-$HOME}

  • ${ZDOTDIR}이 설정되어 있는 경우엔 ${ZDOTDIR:-$HOME}이 해당 값으로 치환되고,
  • ${ZDOTDIR}이 설정되어 있지 않은 경우엔 :- 뒤에 있는 $HOME(=${HOME})의 값으로 치환됨.

:- operator는 "colon-hypen" 또는 "colon-minus"라고 불리며
shell script에서 특정 변수의 값을 가져올 때,
설정되어 있지 않을 경우 기본값을 제공하기 위해 사용됨.

다음의 예를 살펴볼 것.

❯ echo $HOME
/Users/dsaint31
❯ echo ${ZDOTDIR:-$HOME}
/Users/dsaint31
❯ vi ~/.zshrc
❯ echo ${HOME:-test}
/Users/dsaint31
❯ echo ${HOME1:-test}
test

아래의 경우  HOME1은 정의되지 않은 환경변수이므로, 일반 텍스트 test로 출력되는 것을 확인할 수 있음.