我的 Cocoa MacOS 应用程序有一个修改磁盘中某些文件的操作。 我想让这些操作可以从终端运行。
例如,如果我运行:
$ echo `myApp runAction`
这将打开应用程序,执行一些与“runAction”相关的代码,然后将结果打印到控制台。
不幸的是,由于其局限性(不能包含动态框架),我不能只制作命令行工具。
有什么制作技巧吗?
最佳答案
您应该使用 Apple Script 使您的应用程序可编写脚本。有了这个,您可以在 bash(或 zsh)中与您的应用程序“对话”,无论它是否正在运行:
osascript -e '告诉应用程序“myApp”运行Action'
或通过在脚本编辑器应用程序中编写的 AppleScript 脚本。
当应用程序未运行时,它将首先启动。
网络上有一些示例/文档足以完成基本任务,例如执行命令并返回结果:
Making A Mac App Scriptable Tutorial (raywenderlich.com) link
就我而言,这些文档不足以完成复杂的任务,例如将参数传递给命令,但对于简单的任务,例如:
osascript -e '告诉应用程序“myApp”登录'
osascript -e '告诉应用程序“myApp”注销'
- 如果操作由于某种原因失败或成功,则 myApp 返回文字“0”或“1” -
它成功了。 osascript -e“告诉应用程序“myApp”退出”甚至是免费的。
问候, 罗伯特
关于bash - 如何要求 Cocoa 应用程序从终端运行一个操作然后返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59770513/