簡體   English   中英

Mac OS X 10.9 - 設置永久環境變量

[英]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 及更新版本

如果 MacOS 10.15 (Catalina) 和更高版本的任何人來到這里,您需要使用.zshenv文件而不是.bash_profile 這是因為從 Catalina 開始,終端默認使用 zhs 而不是 bash。

以下列方式永久導出路徑:

  1. 創建.zshenv文件:

touch ~/.zshenv

  1. 接下來,使用以下命令打開它:

open -a TextEdit.app ~/.zshenv

  1. 以這種格式輸入您要執行的導出:

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 線程:

https://apple.stackexchange.com/questions/106355/setting-the-system-wide-path-environment-variable-in-mavericks

這為您提供了完整的復制和粘貼,您可以對其進行調整以設置您的特定變量。

  1. 轉到主目錄(如果沒有) cd ~
  2. 打開 .bash_profile 文件vi .bash_profile或者如果不存在則創建touch ~/.bash_profile
  3. 編輯文件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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM