通过bash了解osacompile

时间:2014-09-15 18:16:11

标签: applescript

以编程方式我正在尝试在用户桌面上创建一个applescript文件

我正在尝试按照本教程中的说明如何在Mac上创建配置文件快捷方式:http://weblogs.mozillazine.org/asa/archives/2008/08/shortcut_to_lau.html

所以我通过使用参数运行/usr/bin/osacompile来做到这一点。 问题:这是osacompile文件的正确路径吗?

接下来,我看到这个人用一些参数调用它,这取决于os:

  • 对于Mac OS X 10.4,10.5和10.6,他提供以下参数:
    • -o ~/Library/Application Support/Microsoft/Office/Word Script Menu Items/Zotero/ZoteroQuickLook\\coq.scpt scriptDir+"/ZoteroQuickLook\\coq.scpt"
  • 对于大于10.6的版本,他使用以下参数:
    • -t osas -c ToyS -o ~/Library/Application Support/Microsoft/Office/Word Script Menu Items/Zotero/ZoteroQuickLook\\coq.scpt scriptDir+"/ZoteroQuickLook\\coq.scpt"

请你帮我理解这些论点在做什么。我是否会使用完全相同的参数,使用不同的路径来制作启动Firefox配置文件的苹果脚本?

由于

1 个答案:

答案 0 :(得分:2)

区别在于Open Scripting Architecture(OSA)本身。系统之间的区别在于Launch Services。回到经典Mac OS时代,文件类型不是基于文件的扩展名。文件类型基于文件类型代码。然后还有另一个代码,名为creator代码,它是创建文件的应用程序的信息,这样一旦应用程序保存了文件,它就会被同一个应用程序重新打开。这两个代码存储在HFS +文件系统中,并得到Mac OS X的完全支持,直到Snow Leopard。之后,仅支持文件类型代码。

我不确定在哪个版本的Mac OS X中,但在Mavericks(和Mountain Lion)上,确定创建者代码和文件类型代码不再存储在HFS +文件系统中脚本是使用osacompile创建的。但AppleScript-editor.app仍然支持它。因此,当您创建脚本并希望支持此经典Mac OS文件类型定义时,您需要明确告诉osacompile将这两个代码存储到文件系统中。 osas是代码,告诉它它是一个Open Scripting Architecture Script,简称为AppleScript文件。 ToyS是AppleScript编辑器的创建者代码(自Snow Leopard以来被忽略)。

注意:创建者和文件类型代码区分大小写。