我需要设置环境变量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
答案 0 :(得分:2)
您需要源 .setenv
脚本,以便变量赋值在当前shell中完成,而不是在子shell中完成。子shell中的变量赋值对父shell没有影响。
. /home/myusername/.setenv