ryg

Команда osascript

Выполнить скрипт AppleScript или на другом языке OSA

Синтаксис:

 osascript [-l language] [-s flags] [-e statement | programfile] [argument ...]

Описание:

Утилита osascript выполняет указанный скрипт написанный на языке AppleScript или любом языке выполненном в стандарте OSA (Open Scripting Architecture). Список поддерживаемых языков можно получить командой osalang.
osascript будет искать скрипты в трех следующих местах:
  1. После параметра -e строку текста скрипта.
  2. В файле указанном в командной строке. Файл может быть как текстом, так и скомпилированным скриптом.
  3. Из стандартного ввода. Такой ввод будет работать если не указать никакого имени файла в командной строке и для этого имя скрипта необходимо указать "-"
Любые параметры следующие за именем скрипта будут переданы  в качестве параметров непосредственно скрипту. Например:
 
a.scpt:
	on run argv
	   return "Привет, " & item 1 of argv & "."
	end run 
       % osascript a.scpt мир
       Привет, мир.    

Параметры:

-e statement

Вводит одну строку скрипта указанную вместо statement  . Если -e использован, то osascript не будет искать имя файла со скриптом в параметрах. Для создания многострочного скрипта данный параметр (-e) может быть использован несколько раз в одной команде. Необходимо отметить, что скрипты используют двойные кавычки и одинарные, а также звездочку *, которые могут быть интерпретированы оболочкой, поэтому во избежание проблем необходимо правильно писать параметр. 

-l language

Указать язык скрипта для текстового файла. По умолчанию текстовые файлы компилируются как AppleScript.

-s flags
Определяет формат вывода результата. Аргумент flags может принимать следующие значения e,h,o и s. Данные значения могут быть объединены в строку или при необходимости можно указать параметр -s несколько раз. Если значения flags будут конфликтовать между собой, к исполнению будет принят последний указанный. Данные параметры означают:
h
Выводить результаты в удобном для восприятия человеком виде (по умолчанию).
 
s
Выводить в виде  recompilable source form.
osascript обычно печатает результаты выполнения в формате удобном для человека: строки не заключаются в кавычки, символы не пропускаются, в списках и записях не используются  фигурные скобки и тому подобное. Это удобно, но может вызвать неоднозначности в трактовке. Например, список {"foo","bar"}' и `{{"foo", {"bar"}}}' будет выведен как  `foo, bar'. Для просмотра результатов как есть, используется данный параметр.
 
e
выводить сообщения об ошибках в поток ошибок stderr (по умолчанию)
o
выводить сообщения об ошибках в стандартный поток вывода.
По умолчанию osascript сообщения об ошибках выводит в стандартный поток вывода ошибок (stderr) и пользователи в стандартном окне вывода видят только результаты выполнения скрипта.  При использовании автоматических тестов иногда удобнее видеть сообщения об ошибках вместе с результатами выполнения скрипта.

Смежные команды:

osacompile  - скомпилировать скрипт или сделать исполняемое приложение.
osalang - получить информацию  о поддерживаемых языках скриптов в Mac OS X.
Пример скрипта включающего и отключающего отображение скрытых файлов в Finder