在 shell 脚本中更新环境变量

And*_*sne 3 shell-script environment-variables

我正在尝试更新第三方 shell 脚本中环境变量的值。我的操作系统是 Oracle Linux Server 6.4 版(Red Hat Enterprise Linux Server 6.4 版(圣地亚哥)。

我已经在/etc/bashrc(对于所有用户)中定义了以下环境变量

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

export JAVA_HOME
export PATH
Run Code Online (Sandbox Code Playgroud)

我想为其中一个 shell 脚本使用不同的 jdk 安装。因此我将以下几行添加到customscript.sh

JAVA_HOME=/opt/java/jdk1.7.0_79
export JAVA_HOME
echo "PATH variable is $PATH"
...                      #other script code
Run Code Online (Sandbox Code Playgroud)

customscript.sh 仍然默认为变量的旧环境变量值PATH。上述 echo 命令的输出表明它仍然引用旧的JAVA_HOME变量值。

我可能会错过什么?

Jef*_*ler 5

你的/etc/bashrcPATH通过解释$JAVA_HOME在那一刻的价值。如果JAVA_HOME稍后更改,则不会重新解释。您需要在第 3 方 shell 脚本中添加一行,内容为:PATH=$JAVA_HOME:$PATH以便将 1.7JAVA_HOME放入/etc/bashrc1.8之前的路径中JAVA_HOME