Я создал виртуальную машину RHEL Linux и установил в нее Oracle JDK.
После создания виртуальной машины я выполняю сценарий, используя расширение Custom Script в виртуальной машине. Ниже мой сценарий.
Myscript.sh
echo "$$ $JAVA_HOME $$" >> output.log
echo `env` >> output.log
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 я установил JAVA_HOME в / etc / profile.
script1.sh
javaHomeValue=$(cat /etc/profile | grep JAVA_HOME | awk -F= '{print $2}')
echo "- $ javaHomeValue -" >> output.log
output.log
-- /usr/java/jdk1.8.0_172-amd64 --
Я могу получить JAVA_HOME, используя приведенный выше script1.sh
Есть ли причина, почему JAVA_HOME не устанавливается в переменных среды во время выполнения пользовательского скрипта?