2015-03-30 111 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