【发布时间】:2021-09-22 07:57:54
【问题描述】:
情况:
我需要设置一些环境变量以在程序中访问。如果我打开终端窗口(zsh shell),通过export VARNAME=VARVALUE 设置变量,然后从该终端窗口启动程序(例如open ~/Applications/myApp.app),它就可以工作。
问题
现在我希望在运行应用程序时始终设置环境变量,只需在 Applications 文件夹中双击它即可。为此,我创建了文件~/.zshenv,并在其中编写了导出语句。
现在,当我打开一些终端窗口时,所需的环境变量已经设置好(可以使用env 命令显示),当我从终端启动应用程序时,一切都很好。但是,只要我通过单击 .app 文件启动应用程序,变量就不会在程序上下文中设置。
如果您以这种方式单击它们,我无法在网上找到有关哪个 shell/进程启动应用程序的任何信息。有没有人知道如何解决这个问题?
【问题讨论】:
-
您如何确保在双击应用程序图标时执行
zsh?我不希望会出现这种情况,尽管理论上苹果本可以决定以这种方式实现它。 -
@user1934428 我没有,但我也不太了解 MacOS 的内部工作原理。我只是寻找一种在从 finder 启动时在我的程序上下文中设置环境变量的方法。
-
使用您的方法,您必须重新定义通过单击图标执行的命令,以运行 您 必须提供的 zsh 脚本,然后启动应用程序。但是,如果您想在修改后的环境中查看 Mac 上的每个应用程序,这也不是一个明智的方法。我认为设置应该进入
/etc/launchd.conf。如果这不起作用,我建议您在讨论 MacOS 配置的Ask Different 提出这个问题。
标签: macos environment-variables zsh macos-big-sur .app