我可以在 OS X 中将 bash 脚本用作服务,而无需通过自动程序进行设置吗?

我可以在 OS X 中将 bash 脚本用作服务,而无需通过自动程序进行设置吗?

如何在 OS X 中将 bash 脚本用作服务,而无需通过自动程序进行设置?我基本上想编写一个 bash 脚本,将其保存在 ~/Library/Services 中,然后让它显示在服务菜单中。有什么想法吗?

答案1

此服务比Automator更加精简:

此服务


内置脚本菜单也可以用来运行 shell 脚本:

脚本菜单 shell 脚本

可以从AppleScript 实用程序 — 偏好设置 — 在菜单栏中显示脚本菜单。它包括 ~/Library/Scripts/ 和可选的 /Library/Scripts/ 中的文件。但是您无法分配快捷方式——这是使用的主要原因快速脚本反而。


一些仅用于分配快捷方式的应用程序:osx - 在 Mac OS X 中将键绑定到命令行命令? - 超级用户

答案2

你应该考虑尝试快速脚本。它就像 OS X 的脚本菜单一样,包括方便访问的键盘快捷键。

答案3

我不知道有什么方法可以直接做到这一点。除了 Automator 之外,您还可以使用 XCode 为您的脚本构建一个 AppleScript 包装器,该包装器将作为服务运行。

直接使用脚本会更成问题。我的理解是,它需要是一个应用程序包,然后它需要特定的条目来Info.plist告诉系统它提供什么服务。前者可以用鸭嘴兽;对于后者,使用 XCode 中的属性列表编辑器(或者,如果你不喜欢直接使用 XML,plutil也可以使用 XML 编辑器)来制作一个NSServices钥匙。

这留下了一个相当大的问题:如何调用它;shell 无法直接理解从NSServiceskey创建的 Objective-C 消息,而且 Platypus 似乎也没有办法接收它。我怀疑这意味着用 Objective-C 编写自定义包装器。NSMessage

相关内容