如何从 Mac/MacRuby 应用程序运行 shell 命令?
我正在尝试编写一个小型 MacRuby 状态栏应用程序,该应用程序从命令行运行命令并显示输出。我不知道该怎么做。如何从我的 Mac 应用程序执行此操作?
更新:它可能需要做的另一件事是要求输入管理员密码。有时,当我从命令行运行此脚本时,它会要求我输入密码。我不知道如何提示用户输入密码(或嵌入 shell,以便他们可以直接输入密码)。
I am trying to write a little MacRuby status bar application that runs a command from the command line and displays the output. I don't know how to do this. How can I do this from my Mac application?
Update: The other thing that it might need to do is ask for an administrator password. Sometimes when I run this script from the command line, it asks for my password. I don't know how I would prompt the user for their password (or embed the shell so they could type it directly).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 Cocoa 和 MacRuby,利用 NSTask。执行ls -la 并打印输出的示例:
不幸的是,包含管理员权限并不是一件简单的任务,尤其是使用 MacRuby。看一下 SecurityFoundation 框架,以及这个 链接。本质上,您需要
使用配置好的 AuthorizationRef、要执行的工具的路径、标志、参数进行调用。 此处有一个有用的示例(在 ObjC 中) )展示了这是如何工作的。
Using Cocoa and MacRuby, utilize NSTask. Example that executes ls -la and prints output:
Unfortunately, including admin privileges is no trivial task, especially using MacRuby. Have a look at the SecurityFoundation framework, and this link. Essentially, you need to call
with a configured AuthorizationRef, path of the tool to execute, flags, arguments. There is a useful example here (in ObjC) showing how this works.
您可以简单地使用反引号:
如果您的命令需要管理员权限才能运行,它根本不会运行该命令,也不会返回响应。
You can simply use backticks:
If your command needs admin privileges to run, it won't run the command at all and won't return a response.