bash -> applescript

В системе MAC OS X заложен инструмент osascript позволяющий выполнять AppleScript через консоль. Это удобно, если скажем заходить на него через удаленный ssh или использовать в программах.
Вот простенький AppleScript

tell application "Finder"
	activate
	make new Finder window
end tell

Он активирует Finder и открывает новое окно. Теперь запустим его через консоль.

osascript -e 'tell application "Finder"' -e "activate"
-e 'make new Finder window'  -e 'end tell'

Так как AppleScript требователен к переносам строк, а не использует индикатор окончания строки в виде точки с запятой как в Perl, то каждая новая строчка должна начинаться с атрибута .
Но можно рассширить возможности, запуская команды из программы написанной под консоль, например на Perl

#!/usr/bin/perl

system "osascript -e 'tell application \"Finder\"'
-e \"activate\" -e 'make new Finder window'  -e 'end tell' ";

Уделите особое внимание кавычкам и как они экранируются. Можно так же передавать переменные

#!/usr/bin/perl

$message = "hello";
system "osascript -e 'say \"$message\"'";

А теперь тоже самое для тех кто пишет под шелл

#!/bin/sh

osascript -e 'tell application "Finder"' -e "activate"
-e 'make new Finder window'  -e 'end tell';

PS: все команды приведенные здесь должны быть в одну строчку

Leave a Reply