AppleScript是一个类似英语语法的语言。有直观、简单、易读、易学的特点。不会程序的人一会儿也能入门,并编写一些提高工作效率的软件,使用Mac的用户基本都应该会一点。如果你使用AlfredWorkflow那么AppleScript和它结合开发workflow简直是神兵利器。

AppleScript的编辑器

Mac电脑提供了一个专门用来开发调试AppleScript的编辑器,在 Application –> Utilities –> ScriptEditor中,软件的图标如下:

个人觉得就AppleScript的简单程度来说。这个软件已经足够使用了。当然如果你不满意这个软件。网上还有一些收费软件。读者可以自行Google下载。这里我还要给你推荐一个软件那就是大名鼎鼎的JetBrains Intellij Idea这个是用来开发Java程序的。但是里面提供了AppleScript脚本的插件。安装上这个插件之后,当你编写AppleScript脚本时候会自动弹出代码提示。非常方便。

HelloWord

新建一个名叫Hello.scpt的文件。然后双击打开,此时默认使用ScriptEditor打开。在编辑框输入如下内容。然后点击横线所示的三角运行,就会在finder中显示Hello。如下图所示:


代码如下:

1
2
3
tell application "Finder"
display dialog "Hello"
end tell

数据类型

Boolean(布尔型)

仅仅包含两个值:True和False

Number(数字型)、Integer(整型)和Real(实型)

如:1,2,1.0,1.1,3.14,-1.56
Number类可进一步分为Integer(整数型)和Real(实数型)。

Text(文本型)和 String(字符串型)

如:”This is a text”。 请注意引号为英文引号,以后都是这样。
在目前的AppleScript中,Text和String两个类型是一致的7。

Date(日期型)

如:date “2009年8月30日星期日 下午12:31:34”。
此格式的具体形式由“系统偏好设置-语言与文本”的相关设置决定。

Constant(常量型)

如:yes,no,ask
这些常量可以是已经被AppleScript预定义的,也可以是用户定义的不可变变量。这种
类型的数据一经确定不可更改。此外可以认为所有关键字都是常量型的数据

List(列表型)

1
{1,2,3},{{1,2},{a,b,c},},{1,1.9, "text"}

列表型数据由{}包裹,一个列表中可以再包含列表,形成多维列表,列表里的具体数
据可以是同类型的。

Record(记录型)

如:{firstName:”iDoraemon”, lastName:”Nathan”}
记录就是带有名称的列表。记录中的每一项都有名称(标识符)。我们可以认为List
是每个数据都是匿名的Record。Record也可以进一步包含另一个Record。
此例中,包含两个Text型数据 “iDoraemon”和 “Nathan”,它们的标识符分别是
firstName和lastName。通过of关键字可以得到想要的数据:
firstName of {firstName:”iDoraemon”, lastName:”Nathan”}

执行shell脚本

AppleScript中执行shell脚本的语法模板如下:do shell script “ 这里填入shell脚本 “
例如在AppleScript中执行shell脚本,关闭本机WiFi功能。

1
do shell script "networksetup -setairportpower en1 off"