Bash, Zsh 환경변수 설정 - export 사용 여부의 차이
- aliases
- No value
- tags
- No value
- description
- export를 사용하면 자식 프로세스에게 환경변수가 상속된다
- status
- ai response
- project
- false
- area
- false
- resource
- false
- title
- Bash, Zsh 환경변수 설정 - export 사용 여부의 차이
- created
- 2025-03-06T11:24:23
- updated
- 2025-03-06T11:25:34
Bash/Zsh 환경변수 설정: export 사용 여부의 차이
1. 환경변수 설정 방법
Bash 또는 Zsh에서 환경변수를 설정하는 방법에는 두 가지가 있습니다.
-
export를 사용하지 않는 방법:MY_VAR="hello"- 이 방법은 현재 쉘에서만 변수를 사용할 수 있습니다.
- 새로 실행되는 프로세스(예:
bash,zsh)에서는 변수값이 유지되지 않습니다.
-
export를 사용하는 방법:export MY_VAR="hello"- 이 방법은 현재 쉘뿐만 아니라 새로 실행되는 프로세스에도 변수가 유지됩니다.
2. 실험 결과
다음 실험을 통해 차이를 확인할 수 있습니다.
(1) export 없이 환경변수 설정
MY_VAR1="without_export"
echo $MY_VAR1 # 출력: without_export
bash -c 'echo $MY_VAR1' # 출력: (빈 줄)
- 현재 쉘에서는
MY_VAR1이 설정되어 있지만, 새로운bash프로세스에서는 변수가 유지되지 않습니다.
(2) export 사용하여 환경변수 설정
export MY_VAR2="with_export"
echo $MY_VAR2 # 출력: with_export
bash -c 'echo $MY_VAR2' # 출력: with_export
export를 사용하면 새로운 프로세스에서도 환경변수가 유지됩니다.
3. 결론
export없이 변수를 선언하면 해당 쉘에서만 사용 가능합니다.export를 사용하면 해당 변수가 환경변수로 등록되어 새 프로세스에서도 유지됩니다.- 따라서, 환경변수를 다른 프로세스에서도 사용할 필요가 있다면
export를 사용하는 것이 필수적입니다.
이러한 개념은 .bashrc, .zshrc, .profile 등의 설정 파일에서 환경변수를 영구적으로 유지할 때도 중요하게 작용합니다.