DevOps/Shell

environment variable

게임이 더 좋아 2022. 12. 31. 23:57
반응형
728x170

정의

환경 변수란 쉘 전체에 적용되는 변수를 뜻한다.

다시 말해서 어떤 프로세스에서도 해당 변수를 사용할 수 있다.

우리가 시스템 변수, 환경 변수를 설정하는 것도 같은 원리다.

 

목적

대부분 환경 변수가 필요한 이유는 프로그램이 어디에 있는지 정확하게 모르기 때문이다.

다시 말해서 우리가 install 한 프로그램의 위치를 지정해주지 않으면 프로세스가 자동으로 찾기는 어렵다는 말과 같다.

그래서 맨날 $JAVA_HOME, $PATH 등 맨날 시스템 변수 설정해주는 것이다.

하지만 이외에도 어떤 프로세스에서도 사용할 수 있는 변수를 설정하는데 목적이 있다.

 

Shell Script에서의 envs

다시 본론으로 들어와서

Shell Script에서는 환경 변수로 선언한 변수들을 선언 없이도 쓸 수 있다.

다른 스크립트에서도 가능하다.

환경 변수는 user preferences나 시스템 path, 등에 저장되기 때문이다.

Local variable 처럼 생성했다 금방 사라지는 것이 아니다.

 

 

용도

Bash에서는 export를 사용해서 환경 변수를 설정할 수 있다.

이제부터 FOO의 값은 bar 이다.

#export 한번에 여러 개의 변수 설정 가능
export FOO=bar BAZ=qux

 

이 변수를 접근하기 위해서는 특별한 문자가 필요하다.

바로 '$' 이다.

$로 선언된 변수를 불러온다.

echo $FOO

 

?? 아니 FOO로 쓰고 싶지 않은데???

그렇다면 설정을 해제하면 된다.

unset FOO

 

여러가지 built-in variable도 존재하므로 이름이 겹치는 변수를 만들지 않도록 주의하자.

종합 예시

# Set the FOO environment variable to "bar"
export FOO=bar

# Print the value of the FOO environment variable
echo "The value of FOO is: $FOO"

# Set the BAZ environment variable to "qux"
export BAZ=qux

# Print the value of the BAZ environment variable
echo "The value of BAZ is: $BAZ"

# Set multiple environment variables at once
export FOO=bar BAZ=qux

# Access the value of an environment variable in a command
ls -l $FOO

# Unset an environment variable
unset FOO

# Print the value of the FOO environment variable after unsetting it
echo "The value of FOO is: $FOO"

# Access a built-in environment variable
echo "Your home directory is: $HOME"


----------------------------------------------------------------------------------------
The value of FOO is: bar
The value of BAZ is: qux
The value of FOO is:
Your home directory is: /home/user

 

 


참고링크

https://www.gnu.org/software/bash/manual/bash.html

https://www.tldp.org/LDP/Bash-Beginners-Guide/html/

https://www.gnu.org/software/bash/manual/bash.html#Bash-FAQ

반응형
그리드형

'DevOps > Shell' 카테고리의 다른 글

exit  (0) 2023.01.01
let [command]  (0) 2023.01.01
Bash, 쉘 스크립트 시작하기  (0) 2022.12.25
Shell Script - 10, Function  (0) 2022.11.25
Shell Script - 9, External Program  (0) 2022.11.25