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
变量值。
我可能会错过什么?
你的/etc/bashrc
套PATH
通过解释$JAVA_HOME
在那一刻的价值。如果JAVA_HOME
稍后更改,则不会重新解释。您需要在第 3 方 shell 脚本中添加一行,内容为:PATH=$JAVA_HOME:$PATH
以便将 1.7JAVA_HOME
放入/etc/bashrc
1.8之前的路径中JAVA_HOME
。