2013-06-13 2 views
0

Мне нужно установить переменные среды JAVA_HOME, CATALINA_HOME, PATH и т. П. Я думал, что это будет хорошая идея, чтобы установить их в общий файл, ~/.setenv, а затем вызвать его в моем ~/.profile:Файл общей среды

... code ... 

/home/myusername/.setenv 

Когда я войти я вижу отголоски печатать мою переменную JAVA_HOME и он установлен правильно, но когда я затем выполняю эхо-файл $ 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 

ответ

2

Вы должны источник.setenv сценария так присваивания переменным выполняются в текущей оболочке, а чем в суб-оболочке. Переменные назначения в под-оболочке не влияют на родительскую оболочку.

. /home/myusername/.setenv