Сценарии с AppleScript

Следующее является кратким введением в сценарии AppleScript, инструменты для работы с ними и информацию об использовании сценариев AppleScript вместе с другими системами сценариев. Для связанных документов посмотрите пути изучения в Начале работы с AppleScript.

Редактор сценариев и сценарии AppleScript

Сценарий AppleScript состоит из одного или более операторов, записанных в синтаксисе, описанном в Руководстве по Языку AppleScript (и во многих сторонних книгах). AppleScript определяет некоторые условия сценариев, в то время как scriptable приложения и части Mac OS указывают дополнительные условия для scriptable функций, они поддерживают. Сценарии терминологии обычно используют общие английские слова, приведение к сценариям, которые проще считать. Например, следующее является допустимым оператором сценария:

display dialog "Welcome to AppleScript."

Пользователи могут скомпилировать и выполнить сценарии с приложением Редактора сценариев и могут сохранить их в различных форматах исполняемых файлов, включая как автономные приложения.

Простой сценарий AppleScript

Перечисление 1 показывает сценарий AppleScript, просто возвращающий число файлов в Applications папка на диске существующей системы (обозначенный startup disk, термин, понятый Средством поиска). Если папка не может быть найдена, сценарий возвращает количество нуля. Этот сценарий считает просто файлы в указанной папке, не папках или файлах, которые они могли бы содержать.

Перечисление 1  сценарий, считающий файлы в папке Applications

tell application "Finder"
    if folder "Applications" of startup disk exists then
        return count files in folder "Applications" of startup disk
    else
        return 0
    end if
end tell

Когда сценарий компилируется и выполняется, некоторые операторы выполняют основные операции, такие как присвоение переменной или возврат значения. Оператор, предназначающийся для scriptable приложения, приводит к событию Apple, отправляемому в то приложение. Приложение может возвратить информацию сценарию в событии Apple ответа.

Сценарий в Перечислении 1 заставляет событие Apple быть отправленным в Средство поиска, определяющее местоположение папки Applications на загрузочном диске, считает файлы в нем и возвраты то значение. if...then...else структура является одной из нескольких стандартных функций языка программирования тот AppleScript поддержки.

Редактор сценариев

Приложение Редактора сценариев расположено в /Applications/AppleScript. Это предоставляет возможность, чтобы отредактировать, скомпилировать, и выполнить сценарии, вывести на экран приложение, пишущее сценарий терминологии и сохранить сценарии во множестве форматов, таких как скомпилированные сценарии, приложения, связал приложения и простой текст.

Редактор сценариев может вывести на экран результат выполнения сценария AppleScript и может вывести на экран журнал событий Apple, отправляющихся во время выполнения сценария. В Предпочтениях Редактора сценариев можно также принять решение сохранить историю недавних результатов или журналов событий.

Редактор сценариев имеет текст, форматирующий предпочтения различных типов текста сценария, таких как ключевые слова языка, комментарии, и т.д. Можно также включить или выключить Ассистент Сценария, инструмент завершения кода, который может предложить и заполнить сценарии условий, как Вы вводите. Кроме того, Редактор сценариев обеспечивает контекстное меню для вставки многих типов шаблонных операторов сценария, таких как условные выражения, комментарии и обработчики ошибок.

Отображение словарей сценариев

Можно выбрать File> Open Dictionary in Script Editor для исследования словаря сценариев scriptable приложения или сценариев дополнения на компьютере. Или можно перетащить значок приложения к значку Script Editor для отображения его словаря (если он имеет один). Можно также открыть словари сценариев в XCode.

Для отображения списка, включающего просто scriptable приложения и дополнения сценариев, предоставленные Mac OS выберите Window> Library. Дважды щелкните по элементу в списке для отображения его словаря. Рисунок 1 показывает словарь для приложения Средства поиска в версии 10.5 OS X. Словарь маркируется как «Finder.sdef». Формат sdef, вместе с другими форматами терминологии, описан в Указании Терминологии Сценариев.

Рисунок 1  словарь Средства поиска в Редакторе сценариев (в OS X v10.5)
The Finder dictionary in Script Editor (in OS X v10.5)

Отладка и сторонние продукты

Редактор сценариев поддерживает только простые стратегии отладки, такие как журналирование вывода события и вставка speak или display dialog операторы в сценариях. Однако существует много сторонних продуктов для работы с AppleScript, некоторые из них довольно мощны. Например, существуют редакторы сценариев и инструменты для контроля и отладки сценариев, событий Apple и scriptable приложений. Некоторые из этих сторонних продуктов перечислены в веб-странице Ресурсов AppleScript.

Для получения информации об отладке scriptable приложений и событий Apple, посмотрите Руководство по созданию сценариев Какао документов и Руководство по программированию Событий Apple.

Взаимодействие с пользователем в сценариях

AppleScript предоставляет мало прямой поддержки для взаимодействия с пользователем в сценариях. Однако Стандартные Дополнения, пишущие сценарий дополнения, обеспечивают терминологию для получения различного выбора от пользователя. Например, это включает команды для разрешения пользователю выбрать приложение, цвет, файл, имя файла, и т.д. Это также обеспечивает display dialog команда, позволяющая Вам отображать диалоговое окно с различными вариантами для текстовых меток, кнопок и ввода текста. Пишущие сценарий Дополнения описаны в Расширении AppleScript с Приведениями, Пишущий сценарий Дополнений и Безликих Фоновых приложений.

Чем можно управлять со сценариями

Много приложений от Apple scriptable, и можно также написать сценарий некоторых частей Mac OS. Например, Средство поиска, iTunes, QuickTime Player и Почта очень scriptable. Для полного списка посмотрите веб-страницу Приложений Scriptable в веб-сайте AppleScript. Для получения дополнительной информации о scriptability, предоставленном Apple, посмотрите Утилиты AppleScript и Приложения.

Много сторонних приложений scriptable — их распространение и упаковка обычно упоминают, scriptable ли они. Документация для scriptable приложения обычно перечисляет терминологию AppleScript, которую понимает приложение. Можно также определить, scriptable ли приложение путем попытки исследовать его словарь с приложением Редактора сценариев, как описано в Отображении Словарей Сценариев.

Используя AppleScript с веб-сервисами

XML-RPC и SOAP являются протоколами удаленного вызова процедуры, поддерживающими команды обмена и информацию по Интернету. Начиная с версии 10.1 OS X AppleScript и менеджер по корпоративным мероприятиям Apple предоставляют XML-RPC, и SOAP поддерживает таким образом что:

Для документации относительно использования AppleScript с веб-сервисами посмотрите XML-RPC, и Руководство по программированию SOAP (некоторые примеры могут устареть). Для дополнительных источников и примеров, посмотрите Веб-сервисы. Для получения информации о разработке веб-контента и приложений для сети в OS X, посмотрите Начало работы с Интернетом и сетью.

Используя AppleScript с другими системами сценариев

OS X поддерживает подобную UNIX среду оболочки, которая знакома многим разработчикам. Та поддержка включает Терминальное приложение, расположенное в /Applications/Utilities, который можно использовать, чтобы открыть окна оболочки и выполнить сценарии оболочки. AppleScript обеспечивает два удобных механизма для взаимодействия со средой оболочки: можно выполнить команды оболочки из сценариев AppleScript, и можно выполнить сценарии AppleScript как команды оболочки.

Выполнение команд Shell из сценариев AppleScript

AppleScript обеспечивает do shell script команда для поддержки выполнения команды оболочки как часть сценария AppleScript. Например, следующий оператор сценария использует a do shell script команда, чтобы изменить каталог на корневой каталог текущего пользователя и получить список файлов, найденных там. Информация списка хранится в переменной AppleScript fileInfo:

set fileInfo to do shell script "cd ~; ls"

do shell script команда имеет прежде всего использование сценаристам. Несмотря на то, что приложения могут выполнить сценарии AppleScript, использующие do shell script команда, у них есть более эффективные опции для выполнения команд оболочки, как описано в Поддержке Приложений Углерода и Поддержке Приложений Какао. Для получения дополнительной информации о do shell script команда, посмотрите Техническое примечание TN2065, сделайте сценарий оболочки в AppleScript.

Выполнение сценариев AppleScript как команды Shell

Для выполнения сценариев AppleScript как команд оболочки в Окне терминала или файле сценария оболочки можно использовать osacompile команда и osascript команда (расположенный в /usr/bin). Прежние компиляции сценарий AppleScript, в то время как последний выполняет простой текст или скомпилированный сценарий AppleScript. Страницы справочника обеспечивают документацию для этих команд. Например, ввести man osascript в Окне терминала для получения информации о osascript команда.

При запуске в версии 10.5 OS X существует инструмент командной строки для отображения скомпилированных сценариев как текста, osadecompile. Снова, см. страницу справочника для подробных данных.

Также запускаясь в Mac OX X v10.5, AppleScript позволяет использование # символа как комментарий к концу маркера строки (традиционный двойной дефис (-) также все еще поддерживается). Это означает, что можно превратить простой сценарий Апплескрипт в исполнимую программу Unix путем начала его со следующей строки, и предоставление его выполняет разрешение.

#!/usr/bin/osascript

Сценарии терминального приложения

Терминальное приложение самостоятельно scriptable. Например, можно использовать do script команда для выполнения текста как сценария оболочки или команды. Для наблюдения поддержек операций Terminal можно исследовать его словарь сценариев с Редактором сценариев.

Используя другие языки сценариев

Для тех, у кого есть опыт с различными языками сценариев и средами, предыдущие разделы, вероятно, уже обеспечили убеждение начать экспериментировать. И у Вас действительно есть много опций для того, чтобы сочетать функции от инструментов сценариев, языков и сред, которые являются самыми подходящими для определенных видов задач. Например, следующий короткий оператор сценария оболочки комбинирует Perl, AppleScript и различные инструменты для нахождения двойных записей в приложении Адресной книги.

osascript -e 'tell app "Address Book" to get the name of every person' | perl -pe 's/, /\n/g' | sort | uniq -d

Этот оператор использование osascript выполнить встроенный сценарий AppleScript ('tell app "Address Book" to get the name of every person') это возвращает имена каждой записи адреса из приложения Адресной книги. Это передает вывод по каналу этого сценария через perl инструмент, и с рядом других команд и каналов, получает и форматы a (возможно пустой) список двойных названий.

Для получения дополнительной информации о работе с AppleScript с языков, таких как Ruby и Python, посмотрите Мост Сценариев.