반응형
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
728x90
반응형
그리드형
'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 |