본문 바로가기
목차
Linux

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

by ds31x 2024. 1. 29.
728x90
반응형

Linux에서 환경변수 에 접근하는 방법을 소개함.

Windows에서 %env_varaible% 를 쓰는 것과 다름.

 

환경변수에 대한 내용은 다음을 참고:

2023.06.20 - [개발환경] - [Env] Environment Variable (환경변수)

 

[Env] Environment Variable (환경변수)

정의Environment variable (환경변수) 란,OS나 SW에서 참조하는 변수들로OS나 SW가 동작 (or 실행)에 영향을 주는 값을 가짐.shell script 나 software들이 각 장비의 환경에 맞게 동작할 수 있도록 해 줌.종류Envr

ds31x.tistory.com


${env_varaible}  

다음과 같은 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/사용자_계정명 이 일반적인 형태임.

Command Substitution과의 차이점

Command Substitution과 비슷하게 보이나, curly bracket이냐, parenthesis냐의 차이가 있으니 유의할 것.

2023.10.01 - [Linux/shell] - [Shell] command substitution

 

[Shell] command substitution

command substitution (명령어치환)우리나라말로 명령어 치환 이라고 불리며,특정 명령어의 수행결과를 문자열로 입력받는 형태로 셀프로그래밍 등에서 사용됨.command substitution 사용법아래 예제는 resu

ds31x.tistory.com


colon-hypen

위의 주의할 점은 :- 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로 출력되는 것을 확인할 수 있음.

2023.10.25 - [Linux] - [zsh] 변수 여부 체크하고 없으면 다른 값 할당하기 : ${val0:-val1}

 

[zsh] 변수 여부 체크하고 없으면 다른 값 할당하기 : ${val0:-val1}

zsh 등의 shell script에서 다음과 같은 형태로 변수할당이 되는 경우가 있음. rval=${ZDOTDIR:-$HOME} 이 경우, ZDOTDIR 란 변수가 비어있지 않은 경우에는 rval는 ZDOTDIR과 같은 값을 가지게 된다. rval=$ZDOTDIR 과

ds31x.tistory.com

 

728x90