Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos launchctl未在yosemite 10.10中设置环境变量_Macos_Environment Variables - Fatal编程技术网

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

Macos launchctl未在yosemite 10.10中设置环境变量,macos,environment-variables,Macos,Environment Variables,我浪费了一天的大部分时间试图设置一些简单的环境变量,这些变量将与shell变量一起对GUI应用程序可见。我几乎尝试了在web上找到的所有东西,但是我可以在bash中获得一个变量集,该变量集带有launchctl。我有一个作为登录项运行的脚本,它执行一个简单的启动ctl setenv FOO BAR。当我键入launchctl getenv FOO时,它返回BAR。如果我键入echo$FOO,我会得到一个空字符串。我真不敢相信苹果会这么简单这么难。我一定错过了什么。是吗?当您在终端中键入launc

我浪费了一天的大部分时间试图设置一些简单的环境变量,这些变量将与shell变量一起对GUI应用程序可见。我几乎尝试了在web上找到的所有东西,但是我可以在bash中获得一个变量集,该变量集带有launchctl。我有一个作为登录项运行的脚本,它执行一个简单的
启动ctl setenv FOO BAR
。当我键入
launchctl getenv FOO
时,它返回
BAR
。如果我键入
echo$FOO
,我会得到一个空字符串。我真不敢相信苹果会这么简单这么难。我一定错过了什么。是吗?

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

这是我所期望的,但事实并非如此。如果在终端窗口中设置变量,请关闭窗口并打开新的终端,“echo$FOO”仍然返回空字符串。我甚至有一个用脚本编辑器创建的小应用程序,它在启动时运行并设置变量。相同的结果,在bash命令行中始终为空。一天的大部分时间我都在想为什么……我刚试过,它在这里起作用了。确保关闭整个应用程序,而不仅仅是窗口。我的坏消息。我只是关闭了窗口,而不是整个应用程序:(现在很有魅力。谢谢!
killall Dock
可能会有帮助。