Mac OS X 10.9 – 设置永久环境variables

如何在Mac OS X 10.9中设置永久环境variables(即,每次启动新的terminal会话时不需要导出的环境variables)? 我find了很多关于修改我的.bash_profile.profile的答案,但是这些选项似乎都不是永久解决scheme – 只是暂时的。 我试图设置的variables是MULE_HOME 。 我在我的bashconfiguration文件中有以下行:

 export MULE_HOME=$(/opt/mule-standalone-3.4.0) 

但是,当我启动terminal我得到以下行(不知道这是否是正常行为?):

 -bash: /opt/mule-standalone-3.4.0: is a directory 

并运行一个简单的env命令返回以下内容:

 TERM_PROGRAM=Apple_Terminal SHELL=/bin/bash TERM=xterm-256color TMPDIR=/var/folders/fc/68bqp4jj411gynj5qvwhq6z1shs1fy/T/ Apple_PubSub_Socket_Render=/tmp/launch-xKtkql/Render TERM_PROGRAM_VERSION=326 TERM_SESSION_ID=E97BFE4B-AF85-4933-B252-0883CC085349 USER=dan SSH_AUTH_SOCK=/tmp/launch-rEmTWW/Listeners __CF_USER_TEXT_ENCODING=0x730C85DE:0:0 PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin __CHECKFIX1436934=1 PWD=/Users/dan JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home LANG=en_GB.UTF-8 MULE_HOME= SHLVL=1 HOME=/Users/dan LOGNAME=danwiseman _=/usr/bin/env 

为了解决这个问题,我现在每次开始一个新的terminal会话时,都要export MULE_HOME=/opt/mule-standalone-3.4.0 ,虽然不费劲,但是有点不方便。 我在这里做错了什么,导致variables只能被临时设置? 提前致谢。

放下$(...)位,试图在括号内执行命令,并将$MULE_HOME设置为任何它产生的。 在你的情况/opt/mule-standalone-3.4.0不是一个可执行文件,因此你得到的错误。

 export MULE_HOME=/opt/mule-standalone-3.4.0 

并使用~/.bashrc而不是~/.bash_profile

编辑:看来,你应该在你的~/.bash_profile脚本中设置环境variables,而不是~/.bashrc脚本。

只是这样做很简单,快捷。 首先从terminal创build一个〜/ .bash_profile

 touch ~/.bash_profile 

然后

 open -a TextEdit.app ~/.bash_profile 

 export TOMCAT_HOME=/Library/Tomcat/Home 

在文本编辑保存文件,你就完成了。

你可以把你的export语句放在~/.bashrc

或者,如果您希望graphics应用程序可以看到您的环境variables,则还可以将以下命令添加到.bash_profile 。 在Mac OS X中,graphics应用程序不会inheritance您的.bash_profileconfiguration:

 launchctl setenv MYPATH myvar