setenv& amp;的奇怪行为OS X Yosemite中的getenv

时间:2014-11-20 16:52:06

标签: macos setenv getenv

当我设置环境变量

launchctl setenv FOO test

我可以通过

获取值
launchctl getenv FOO

返回'test',但是简单

echo $FOO

不替换,结果为空。在同一个终端以及新终端。

背景:Yosemite 10.10不再支持/etc/launchd.conf用于系统范围的设置,因此Setting environment variables via launchd.conf no longer works in OS X Yosemite/El Capitan/macOS Sierra?看起来非常有前景,但我需要通过$VARNAME访问env vars,在我的情况下不起作用。

1 个答案:

答案 0 :(得分:1)

正如我在问题/问题 here部分中所写,为了在系统重启后应用程序正确使用您的env变量,您需要:

  • 登录两次:login => logout =>登录
  • 或关闭&手动重新打开应用程序,应该采用env变量
  • 或者不要使用“在重新登录时重新打开窗口”功能。

这是因为Apple拒绝加载服务的显式排序,因此env变量与“重新打开队列”的处理并行注册。