AppleScript – execute from Command Line
5月 19, 2009
説明:
簡単なAppleScript の説明と、コマンドラインから実行する方法について解説します。
Apple Script とは
Mac に標準でインストールされ、ほとんど全てのアプリを操作することができる、パワフルで簡単な、、、あんまり流行ってない言語です。自然言語に近づけた、ちょっと回りくどい文法が特徴です。
コマンドラインとは
ターミナル.app(またはそれに準ずるもの)からアクセスできる、CUI (Character-based User Interface) です。Linux 等からOS X に入った方で、Mac のコマンドラインに馴染みの無い方は、
$say hello
とかやるとビックリするかも。
$open .
とかね。
AppleScript プチ入門:
1. アプリケーションフォルダにある、スクリプトエディタ.appを起動します。
2. 次の3行を入力します。
tell app "itunes"
play
end tell
(app がapplication に、itunes がiTunes に、自動で修正されます。)
4.実行できることが確認できたら、デスクトップにテキスト形式で保存します。
(フォーマット:テキスト 改行:Unix (LF) )
テキストファイルなので、テキストエディタでも作成出来ます。
AppleScript は他のアプリケーションを操作するために使われることがほとんどです。そのため、対象となるアプリケーションがどのようなコマンドで受け付けるのか、調べる必要があります。
スクリプトエディタのファイルメニューにある「用語説明を開く…」から、使いたいアプリケーションを選択するか、アプリケーションのアイコンをスクリプトエディタのアイコンにドラッグ&ドロップすれば、用語説明が開きます。(説明を書いていて気づいたのですが、スクリプトエディタ.app は自分自身をドラッグ&ドロップで開くことができますね。)
iTunes の用語説明を開いてください。用語説明の内容は難しいので詳しい説明はしません。
iTunes Suite の中にある[back track / next track / pause / play / stop]等を確認してください。これらは引数が要らないので説明も簡単です。
コマンドラインからの実行:
osascript というコマンドがあります。デスクトップに itunes-play.applescript という名前で保存した場合の実行例
(先頭の$ はコマンドプロンプト)
$cd ~/Desktop
$osascript itunes-play.applescript
第一引数にファイル名を渡すだけです。あるいは、標準入力にパイプして
$cat itunes-play.applescript | osascript
というやり方もできます。
osascript コマンドは OSA (Open Scripting Architechture) に対応したスクリプトを実行するコマンドですが、デフォルトでAppleScript が指定されています。詳しくは、
$man osascript
を読んでください。
-e オプションでスクリプトを1行渡すことができます。
-e オプションは複数つけることができます。
$osascript -e 'tell app "iTunes"' -e 'playpause' -e 'end tell'
この3行の AppleScript は、1行にまとめることができます。
$osascript -e 'tell app "iTunes" to next track'
これで、AppleScript をコマンドラインから実行することができるようになりました。次回はQuatz Composer からコマンドを呼ぶ方法について説明します。


