2014-11-20 82 views
0

當我設置變量的環境奇怪的行爲約塞米蒂

launchctl setenv FOO test 

我可以

launchctl getenv FOO 

返回我的「測試」獲取價值SETENV&GETENV在OS X,但一個簡單的

echo $FOO 

不替代,結果爲空。在同一個終端以及在新的終端。

背景:約塞米蒂10.10不支持/etc/launchd.conf了系統範圍的設置,所以Setting environment variables via launchd.conf no longer works in OS X Yosemite/El Capitan/macOS Sierra?看起來非常有前途的,但我需要訪問ENV通過$VARNAME,這並不在我的情況下工作瓦爾。

+2

你試過重新啓動Terminal.app嗎? – Mats 2014-11-20 16:59:05

+0

這就是訣竅:)我剛剛打開了一個新標籤頁或窗口,但之前並沒有終止舊的Terminal.app。現在一切正常。謝謝! – ctp 2014-11-20 22:53:33

回答

1

正如我在一節中寫道問題/問題here爲了您的ENV變量被正確地採取系統重新啓動後的應用程序,你將需要:

  • 或者登錄兩次:登錄=>註銷=>登錄
  • 或關閉&手動重新打開應用程序,其中應該採用env變量
  • 或不要使用「重新打開窗口時重新登錄」功能。

發生這種情況是由於Apple拒絕加載服務的顯式排序,所以env變量與「reopen queue」的處理並行註冊。

+0

我甚至讀了幾次,但誤解了Terminal.app的關閉和重新打開。這不是關閉一個終端窗口並打開一個新窗口,而是關閉Terminal.app作爲應用程序。之後有意義:) – ctp 2014-11-21 00:39:14