AppleScript编程(一):苹果脚本的基本语法

根据百度百科的解释,AppleScript是Apple公司独有的技术(Mac OSX内置的编程语言,只能在Mac上运行,也就是把windows拒之门外了),于1990年首次出现在Mac OS 7上;编写AS脚本可在Finder和其他AppleScript应用程序中实现自动化操作


概述

关于『是什么』的问题,在引言部分已经讲的很清楚了

AppleScript使用了名为Apple Events的技术,利用该技术,可在Mac应用程序间实现消息传递。通过脚本,用户可将命令从一个应用程序发送到其他的多个应用程序中;脚本还将获取应用程序中各种对象的设置信息;同时,如果愿意,也可改变这些设置、调用命令、或自动完成某些工作

所编写的应用程序必须能够保证支持Apple Events。大多数应用程序都可识别一部分事件,例如打开、退出和打印等。而另外一些应用程序可支持推荐的标准命令集,例如,剪切、拷贝、保存,统计和删除。此外,还有一些应用程序充分地运用了AppleScript具有的功能,为用户提供了指定的事件。例如,提供了可启动Internet Explorer的命令,或可在Mail中创建新消息的命令等

既然是脚本,本着实用原则它是没有类型声明的(动态类型)


Hello world:你的第一个AS脚本

say "Hello world"
beep 2

AppleScript编程(一):苹果脚本的基本语法_第1张图片

在Mac自带的脚本编辑器中输入以上脚本代码,点击

AppleScript编程(一):苹果脚本的基本语法_第2张图片

using命令如果不写则默认为一个女声好像)

三角形的运行按钮,这会让Mac在说出那句著名的『你好,世界』后,发出两声『哔!哔!』的声音……


数据类型和基本的脚本命令

虽说没有类型声明但是可以证明Applescript是动态、弱类型的编程语言

AppleScript编程(一):苹果脚本的基本语法_第3张图片

程序在输出(voice) 三("2"自动转换为数字)、(voice) 一点二(1自动转换为字符串)后,弹出上面的脚本错误界面

在AS脚本中,存在四种基本数据类类型:

1)数字(number)

2)文本(text)

3)列表(list)

4)记录(record)

数字

AS脚本的数字是自动浮点数相除的(say 10/3,这会输出(voice) 3.3333333……

文本

AS脚本的文本就是通常说的字符串,苹果脚本的字符串必须用双引号括起来(如set str to "WWW"
使用&拼接字符串,the lengh of指令获取字符串长度

演示一:输出(voice) How are you -I am fine

set s1 to "How are you\n"
set s2 to "I am fine"
set s3 to s1 & s2
say s3

演示二:输出(voice) 2,说明转义字符也占文本长度

say the length of "1\n"

列表

AS的列表类似Python,用{}(花括号)表示

奇葩的是,AS的列表下标从1而不是0开始计数(以下程序输出(voice) 2

set lyst1 to {1, "2"}
set lyst2 to {"3", 4}
set lyst3 to lyst1 & lyst2
say item 2 of lyst3

另外你不能直接say一个列表(后面讲的记录也不行)

AppleScript编程(一):苹果脚本的基本语法_第4张图片

(能say的东西都是可以转换为text类型的)

这里同样有一个便利的语法糖:负数索引(以下程序输出(voice) 4

set lyst1 to {1, "2"}
set lyst2 to {"3", 4}
set lyst3 to lyst1 & lyst2
say item -1 of lyst3

记录

AS的记录可以理解为JavaScript的对象

AppleScript编程(一):苹果脚本的基本语法_第5张图片

这是一个平淡无奇的弹窗小栗子,在result(结果)

AppleScript编程(一):苹果脚本的基本语法_第6张图片

会输出以标签/值进行存储的数据结构(记录,类似于Python的字典)

让我们对上述代码稍作修饰

AppleScript编程(一):苹果脚本的基本语法_第7张图片

用变量接受动作的返回值,接着使用它

AppleScript编程(一):苹果脚本的基本语法_第8张图片

AppleScript编程(一):苹果脚本的基本语法_第9张图片

AppleScript编程(一):苹果脚本的基本语法_第10张图片

基本脚本命令(如tellsay等;占坑待填!)

你可能感兴趣的:(脚本编程,AppleScript,Mac,OSX技巧)