2015-03-30 113 views
1

我浪費了大部分時間試圖獲得一些簡單的環境變量集,這些變量集在GUI應用程序中與shell變量一起可見。我嘗試了幾乎所有我在網上找到的東西,但我可以通過在bash中使用launchctl來設置變量集。我有一個腳本,作爲一個簡單的登錄項目運行launchctl setenv FOO BAR。當我輸入launchctl getenv FOO時,它返回BAR。如果我輸入echo $FOO,我會得到一個空字符串。我無法相信蘋果會這麼簡單這麼難。我肯定錯過了什麼。我是嗎?launchctl沒有在優勝美地裏設置環境變量10.10

回答

0

當您在終端中輸入launchctl setenv FOO BAR時,您正在設置launchd環境中的變量。您將不得不重新啓動終端(所有進程)以查看更改。 launchd將在啓動終端時傳遞您的新變量,並且它將在運行echo $FOO的新實例中可見。這同樣適用於所有應用程序。

+0

這就是我期待的事情,但事實並非如此。如果我在終端窗口中設置變量,關閉窗口並打開一個新終端,'echo $ FOO'仍然返回一個空字符串。我甚至用一個在啓動時運行的腳本編輯器創建了一個小應用程序來設置變量。同樣的結果,總是從bash命令行清空。一天中的大部分時間都拉着我的頭髮試圖找出爲什麼...... – cpeddie 2015-03-30 22:11:00

+0

我只是試過它,它在這裏工作。一定要關閉整個應用程序,而不是窗口。 – baf 2015-03-30 22:16:25

+0

我的不好。我只關閉窗口,而不是整個應用程序。 :(現在像魅力一樣工作。謝謝! – cpeddie 2015-03-30 22:37:16