WSL - shell script에서 설정한 환경 변수가 스크립트 실행 후 반영되지 않는 문제
제가 알기로는 export 명령어를 사용하면 전역적으로 환경 변수를 등록할 수 있습니다.
$ export TEST=1
그런데, 일련의 환경 변수를 등록하는 것이 귀찮아서 이것을 script에 만들어 두고,
# test_env.sh
export TEST=1
WSL shell에서 실행하면 환경 변수가 유지되지 않습니다.
$ ./test_env.sh
$ echo "TEST=" $TEST
TEST=
$
반면, 가상 머신에 직접 생성한 (WSL이 아닌) Ubuntu 데스크톱의 터미널에서 실행했더니, 결과가 "TEST=1"이 정상적으로 화면에 찍힙니다.
리눅스에 대한 이해가 짧아서 매번 이런 사소한 것들에서 ^^ 문제를 겪는군요. 과연 이것이 WSL의 문제인지, 원래 리눅스 포트마다 이런 부분에서 다르게 동작하는 것인지 알 수 없습니다. (혹시 이력을 아시는 분은 덧글 부탁드립니다.)
어쨌든, WSL Shell에서 환경 변수 설정을 유지하려면 스크립트를 "source" 명령어를 이용해 실행해야 합니다.
$ source test_env.sh
$ echo "TEST=" $TEST
TEST= 1
$
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]