launchctl 未在 yosemite 10.10 中设置环境变量

launchctl not setting environment variables in yosemite 10.10

我一天中的大部分时间都在尝试获取一些简单的环境变量集,这些变量集将与 shell 变量一起对 GUI 应用程序可见。我几乎尝试了我在网络上找到的所有内容,但我可以使用 launchctl 设置变量以在 bash 中可见。我有一个作为登录项运行的脚本,它执行简单的 launchctl setenv FOO BAR。当我输入 launchctl getenv FOO 时,它是 returns BAR。如果我输入 echo $FOO 我得到一个空字符串。我简直不敢相信苹果会把这么简单的事情搞得这么难。我肯定错过了什么。我是吗?

当您在终端中键入 launchctl setenv FOO BAR 时,您是在 launchd 环境中设置变量。您将必须重新启动终端(它的所有进程)才能看到更改。 launchd 将在启动终端时传递您的新变量,它将在新实例中可见 运行 echo $FOO。这同样适用于所有应用程序。