[英]Mac OS X 10.9 - setting permanent environment variables
如何在 Mac OS X 10.9 中設置永久環境變量(即每次啟動新終端會話時不需要導出的環境變量)? 我找到了許多關於修改我的.bash_profile
和.profile
的答案,但是這些選項似乎都不能作為永久解決方案 - 只是暫時的。 我要設置的變量是MULE_HOME
。 我的 bash 配置文件中有以下行:
export MULE_HOME=$(/opt/mule-standalone-3.4.0)
但是,當我啟動終端時,我得到以下行(不確定這是否是正常行為?):
-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
為了解決這個問題,我目前每次啟動一個新的終端 session 時都必須輸入export MULE_HOME=/opt/mule-standalone-3.4.0
,雖然不費力,但有點不方便。 我在這里做錯了什么導致變量僅被臨時設置? 提前致謝。
剛剛做到這一點非常簡單快捷。 首先從終端創建一個~/.bash_profile :
touch ~/.bash_profile
然后
open -a TextEdit.app ~/.bash_profile
添加
export TOMCAT_HOME=/Library/Tomcat/Home
將文檔保存在 TextEdit 中,您就完成了。
刪除$(...)
位,它會嘗試執行括號內的命令並將$MULE_HOME
設置$MULE_HOME
它產生的任何內容。 在您的情況下, /opt/mule-standalone-3.4.0
不是可執行文件,因此會出現錯誤。
export MULE_HOME=/opt/mule-standalone-3.4.0
並使用
~/.bashrc
而不是
~/.bash_profile
。
編輯:似乎意見是你應該在你的~/.bash_profile
腳本中設置環境變量,而不是~/.bashrc
腳本。
如果 MacOS 10.15 (Catalina) 和更高版本的任何人來到這里,您需要使用.zshenv
文件而不是.bash_profile
。 這是因為從 Catalina 開始,終端默認使用 zhs 而不是 bash。
.zshenv
文件: touch ~/.zshenv
open -a TextEdit.app ~/.zshenv
export NAME=path
ex: export PICO_SDK_PATH=/Users/[redacted]/Developer/pico-sdk
或者,如果您希望圖形應用程序可以看到您的環境變量,您也可以將以下命令添加到您的.bash_profile
。 在 Mac OS X 中,圖形應用程序不會繼承您的 .bash_profile 配置:
launchctl setenv MYPATH myvar
您可以將導出語句放在~/.bashrc
蘋果似乎一直在改變如何做到這一點。 這一切都與上下文有關。 當另一種方法有效時,一種方法不一定有效。 我需要它在 IDE 中工作,這里提到的 bash 文件(Linux 風格)都沒有做到這一點。 與 Windows 和 Linux 相比,GUI 應用程序目前永久尊重這一點的方式非常復雜!
簡而言之,您將一大堆丑陋的 XML 寫入 plist 文件以運行一些 bash。 那進入您的“啟動代理”目錄,即~/Library/LaunchAgents/my.startup.plist
。 這是關於該主題的另一個 Stack Exchange 線程:
這為您提供了完整的復制和粘貼,您可以對其進行調整以設置您的特定變量。
cd ~
vi .bash_profile
或者如果不存在則創建touch ~/.bash_profile
export PATH=$PATH:add-your-path-here
並保存並重新啟動終端以查看效果。 檢查echo $PATH
以查看是否添加了路徑或檢查您安裝的軟件包的版本。我必須運行source ~/.bashrc
才能在更改 ~/.bashrc 后顯示我的更改,我在 Big Sur 上。
在 MacOS 的 Big Sur 中,我認為 .bashrc 是 now.zshrc 而 .bash_profile 是 now.zprofile。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.