gpt4 book ai didi

objective-c - OS X GUI Cocoa 应用程序与 shell 交互

转载 作者:行者123 更新时间:2023-12-03 16:42:31 25 4
gpt4 key购买 nike

背景:

我们正在开发一个仅供内部使用的 cocoa 应用程序,以帮助我们完成一些基本的系统管理任务和复杂的网站部署。该应用程序基本上是许多不同 bash shell 命令的包装器。这些命令的输出有时需要解析或显示给用户。

我们已经尝试过 NSTask 并且能够启动一些脚本。然而,这似乎有点麻烦(需要设置确切的路径,单独传递每个参数,等等......)。如果这实际上是首选方法,我们可以以这种方式使用 NSTask。

迄今为止最大的挑战是设置 shell 环境。我们与许多 ruby​​ gem 和程序进行交互,并使用 capistrano 进行部署。

问题是:

我们如何像用户一样通过环境设置与 shell 进行交互? (别名、rvm、ruby、路径)

最佳答案

您将在 Terminal.app 的 shell 中看到设置的环境变量几乎仅限于您在终端上下文中使用的任何 shell。它不会被“NSTask”自动拾取。

但是...你确实有选择。 Some of them are described in answers to this related question .

您可以通过“~/.launchd.conf”文件设置 NSTask 获取的更多通用环境变量,或者您也可以设置“NSTask”通过“[NSTask setLaunchPath:]”(其中启动路径是您的 shell)匹配终端中的那个(这意味着您选择 .bashrc 或 .profile 或任何初始化路径)。 p>

当然,您也可以从工具中调用“system() ”。这也可能会获取“~/.launchd.conf”文件中设置的变量。

More information on environment variables is available in this question.

关于objective-c - OS X GUI Cocoa 应用程序与 shell 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13478755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com