0

我需要设置环境变量 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
4

1 回答 1

2

您需要获取脚本.setenv以便变量分配在当前 shell 中完成,而不是在子 shell 中。子 shell 中的变量赋值对父 shell 没有影响。

. /home/myusername/.setenv
于 2013-06-13T22:23:22.990 回答