Файл общей среды

У меня есть необходимость установить переменные окружения 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
Другие вопросы по тегам