【问题标题】:Shared Environment File共享环境文件
【发布时间】:2013-06-13 22:19:51
【问题描述】:

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

【问题讨论】:

    标签: bash unix environment-variables sh .profile


    【解决方案1】:

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

    . /home/myusername/.setenv
    

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 1970-01-01
      • 2012-08-18
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      相关资源
      最近更新 更多