쉘 스크립트에서 환경 변수 업데이트

쉘 스크립트에서 환경 변수 업데이트

타사 셸 스크립트에서 환경 변수 값을 업데이트하려고 합니다. 내 운영 체제는 Oracle Linux Server 버전 6.4(Red Hat Enterprise Linux Server 버전 6.4(San Diego))입니다.

/etc/bashrc(모든 사용자에 대해) 다음 환경 변수를 정의했습니다.

JAVA_HOME=/opt/java/jdk1.8.0_45
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

export JAVA_HOME
export PATH

내 쉘 스크립트 중 하나에 다른 jdk 설치를 사용하고 싶습니다. 그래서 다음 줄을 추가했습니다.customscript.sh

JAVA_HOME=/opt/java/jdk1.7.0_79
export JAVA_HOME
echo "PATH variable is $PATH"
...                      #other script code

customscript.sh는 여전히 이전 환경 변수 값을 기본값으로 사용합니다 PATH. 위 echo 명령의 출력은 여전히 ​​이전 JAVA_HOME변수 값을 참조하고 있음을 보여줍니다.

내가 무엇을 놓치고 있을까요?

답변1

/etc/bashrc그때의 값을 해석하여 설정합니다 . 나중에 변경되더라도 재해석되지 않습니다. 타사 셸 스크립트에 1.8 이전 경로에 1.7을 추가하려면 다음 줄을 추가해야 합니다.PATH$JAVA_HOMEJAVA_HOMEPATH=$JAVA_HOME:$PATHJAVA_HOME/etc/bashrcJAVA_HOME

관련 정보