我创建了一个 RHEL Linux VM 并在其中安装了 Oracle JDK。
创建 VM 后,我正在使用 VM 中的自定义脚本扩展执行脚本。下面是我的脚本。
脚本.sh
echo "$$ $JAVA_HOME $$" >> output.log
echo `env` >> output.log
输出日志
$$ $$
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin PWD=/var/lib/waagent/custom-script/download/1 LANG=en_US.UTF-8 SHLVL=4 _=/usr/bin/env
当我运行上述脚本时,我没有看到 JAVA_HOME 已设置。但是当我登录机器时,我看到了 JAVA_HOME 值。
更新:-
在安装 Oracle JDK 期间,我在 /etc/profile 中设置了 JAVA_HOME。
脚本1.sh
javaHomeValue=$(cat /etc/profile | grep JAVA_HOME | awk -F= '{print $2}')
echo " -- $javaHomeValue -- " >> output.log
输出日志
-- /usr/java/jdk1.8.0_172-amd64 --
我可以使用上面的 script1.sh 获取 JAVA_HOME
有什么原因,为什么在执行自定义脚本期间没有在环境变量中设置 JAVA_HOME?