타사 셸 스크립트에서 환경 변수 값을 업데이트하려고 합니다. 내 운영 체제는 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_HOME
JAVA_HOME
PATH=$JAVA_HOME:$PATH
JAVA_HOME
/etc/bashrc
JAVA_HOME