Файл общей среды
У меня есть необходимость установить переменные окружения JAVA_HOME, CATALINA_HOME, PATH и тому подобное. Я подумал, что было бы неплохо установить их в общий файл ~/.setenv, а затем вызвать его в моем ~/.profile:
... code ...
/home/myusername/.setenv
Когда я вхожу в систему, я вижу, что echos выводит мою переменную JAVA_HOME, и она установлена правильно, но когда я затем выполняю echo $JAVA_HOME вручную, она ничего не печатает.
Почему мой сценарий.setenv не устанавливает мои переменные?
Вот мой файл.setenv:
export JAVA_HOME=/usr/local/jdk1.6.0_45
export PATH=$PATH:$JAVA_HOME/bin
export CATALINA_HOME=/var/lib/apache-tomcat-6.0.37
export CATALINA_BASE=/var/lib/apache-tomcat-6.0.37
whoami
echo "JAVA_HOME set to $JAVA_HOME"
echo "CATALINA_HOME set to $CATALINA_HOME"
echo "You can change this in /home/myusername/.setenv"
Вывод при входе в систему:
Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-19-generic x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Thu Jun 13 16:11:21 2013 from 192.168.1.200
o#: command not found
myusername
JAVA_HOME set to /usr/local/jdk1.6.0_45
CATALINA_HOME set to /var/lib/apache-tomcat-6.0.37
You can change this in /home/myusername/.setenv
1 ответ
Решение
Вам нужно найти источник .setenv
сценарий, так что назначения переменных выполняются в текущей оболочке, а не в вложенной оболочке. Переменные в под-оболочке не влияют на родительскую оболочку.
. /home/myusername/.setenv