为什么 Mac OS X 中的 PATH 变量在“从命令行启动”和“单击图标”之间不同?

为什么 Mac OS X 中的 PATH 变量在“从命令行启动”和“单击图标”之间不同?

正如我所问的这里,我了解到 PATH 环境变量根据我启动应用程序的方式而不同。

从命令行使用“aquamacs”在 bash 上运行,因此 PATH 变量被复制到 eshell 中的 PATH 变量。

但是,单击 Aquamacs 图标的方法怎么样?当我单击 Mac OS X 上的应用程序时,会设置什么 PATH 变量?以及如何以这种方式设置 PATH 变量?

答案1

当您从命令行运行某些内容时,它会作为您在终端中运行的 shell 的子进程创建。因此,它会从您的 shell 继承其环境。

通过双击运行,它不是由 bash 启动的,而是作为 的子项启动的launchd

打开活动监视器并选择“所有进程,按层次结构”以显示父/子进程关系。

替代文本

其他问题讨论了为未从 shell 启动的程序设置环境变量,例如这个这个

相关内容