And*_*rew 5 macos shell command-line macruby
我正在尝试编写一个小的MacRuby状态栏应用程序,它从命令行运行命令并显示输出.我不知道该怎么做.如何从我的Mac应用程序执行此操作?
更新:它可能需要做的另一件事是要求输入管理员密码.有时,当我从命令行运行此脚本时,它会询问我的密码.我不知道如何提示用户输入密码(或嵌入shell以便他们直接输入密码).
使用Cocoa和MacRuby,使用NSTask.执行ls -la并打印输出的示例:
framework 'Cocoa'
task = NSTask.alloc.init
task.setLaunchPath("/bin/ls")
arguments = NSArray.arrayWithObjects("-l", "-a", nil)
task.setArguments(arguments)
pipe = NSPipe.pipe
task.setStandardOutput(pipe)
file = pipe.fileHandleForReading
task.launch
data = file.readDataToEndOfFile
string = NSString.alloc.initWithData(data, encoding: NSUTF8StringEncoding)
puts "Command returned: "
puts string
Run Code Online (Sandbox Code Playgroud)
不幸的是,包括管理员权限在内并不是一项简单的任务,尤其是使用MacRuby.看一下SecurityFoundation框架,以及这个链接.基本上,你需要打电话
AuthorizationExecuteWithPrivileges(...)
Run Code Online (Sandbox Code Playgroud)
使用已配置的AuthorizationRef,要执行的工具的路径,标志,参数.有一个有用的例子,在这里展示它是如何工作(在ObjC).
| 归档时间: |
|
| 查看次数: |
837 次 |
| 最近记录: |