タイトルBrowsing Mac OS X》スクリプトメニューで、AppleScriptだけでなくシェルやPerlもスタートカテゴリーユーザインタフェース, AppleScript, Browsing Mac OS X
作成日2001/10/17 18:33:51作成者新居雅行
Mac OS X 10.1の登場で、AppleScriptが脚光を浴びている。というか、Mac OS X 10.0でもAppleScriptは使えたものの、Finderでのスクリプトがあまり従来とは異なる動きになってしまっていたことから、多くのプログラマはお手上げ状態になってしまっていたのである。もちろん、まだいくらか怪しい面はあるのだが、そうした基本的な部分の不具合もそこそこ解消され、「プログラムを作る気にさせる」くらいまでは来たのがMac OS X 10.1のAppleScriptなのである。
それにも増して、新しい機能がいろいろ増えた点も見逃せない。SOAP対応や、ImageCaptureによる画像処理など新しいコマンド(というかOSAXか)も注目したいところではある。それに、AppleScript Studioという開発環境はこれから発売されるものではあるが、楽しみな環境でもある。まずはScript Menu機能をチェックしよう。Script Menuは、メニューバーの右端の領域にアイコンを表示させ、そこからのプルダウンメニューから既存のスクリプトを実行するという機能である。もちろん、AppleScriptのアプリケーションにすれば、ダブルクリックなりDockからの起動などもできるのであるが、スクリプト系のプログラムは小さなプログラムを多数作って対処する傾向にある。そうした場合、もちろんローンチャ系ユーティリティを使ってもいいのであるが、どこかにまとめて管理して、手軽に呼び出せるようになると便利なのだ。そうしたことを実現するのがScript Menuというわけである。もっとも、Mac OS 9までではOSA Menuというサードパーティ製品がOSに添付されていたこともあり、目新しい機能ではない。Mac OS Xではそうした機能を、Apple自らがサポートしたということである。

Script Menuという便利な機能があるのにもかかわらず、なぜかMac OS X 10.1では標準ではインストールされないので、ダウンロードしなければならない。以下のサイトからダウンロードできる。ダウンロードすると、ScriptMenu.menuというファイルが得られるが、これがスクリプトのメニューを実現する「プラグイン」である。ファイルの種類はMenuExtra pluginとなっている。

◇Script Menu for Mac OS X 10.1
 http://www.apple.com/applescript/macosx/script_menu/

ちなみに利用方法は至極簡単で、このScriptMenu.menuファイルを、メニューバーにドラッグ&ドロップすればそれだけでOKである。ScriptMenu.menuファイルは基本的にはどこにあってもいいようだが、メニューバーにドラッグ&ドロップしてからScriptMenu.menuファイルの位置を移動しない方がいいだろう。これで、再起動してもメニューバーにはきちんとスクリプトメニューが表示されるようになる。インストールはこれだけなのである。
MenuExtra pluginは、最初から組み込まれるバッテリーやAirMac、音量などの設定アイコンでも使われている機能である。既存のプラグインは、/System/Library/CoreServices/Menu Extraというフォルダに存在するので、それじゃあScriptMenu.menuもそこに入れておくのがいいかという話もあるかもしれないが、通常はそのフォルダに対するアクセス権がないので、Finder上で単にドラッグ&ドロップすることでのファイルの移動ができない。いちいちrootでどうこう…というのも面倒なので、1つの推奨できる方法は、自分のホームフォルダのLibraryフォルダの中に、Menu Extraフォルダを作り、そこにScriptMenu.menuを移動させておくことだ。その後にメニューバー上にドラッグ&ドロップする。もちろん、複数のユーザでログインする場合は各アカウントにコピーするか、あるいはSystemフォルダ側へコピーしておくなどの措置をとることになる。
なお、メニューバーの右側にあるメニューアイコンの位置を変更したかったり、あるいはメニューを取り除きたいのなら、Commandキーを押しながらメニューのアイコンをドラッグすればいい。

こうしてインストールすると、いきなりスクリプトメニューにたくさんの項目が表示されるはずである。/Library/Scriptsフォルダ以下の構成がすべて階層メニューとして表示されているのである。

◇スクリプトメニューからすでに項目が選択できるようになっている
 

/Library/ScriptsフォルダはMac OS X 10.1では最初から用意されている。そして、フォルダ内には、たくさんのサンプルというかある程度実用になるスクリプトが用意されている。Scriptsフォルダ内にあるフォルダは、スクリプトメニュー側では階層メニューとなり、Script Editorで作ったコンパイル済みスクリプトのファイル名が、スクリプトメニューの項目になっている。たとえば、「AppleScript Help.scpt」というコンパイル済みスクリプトは、拡張子のscptがついているが、メニュー項目では「AppleScript Help」のように、拡張子は取り除かれている。いずれにしても、拡張子はつけるというのは基本になってきているだけに、こうしたファイル名付けにも早めに慣れたいところだ。

◇Mac OS X 10.1に最初から用意されているスクリプトメニュー用のスクリプト
 

もちろん、スクリプトメニューにあるスクリプトファイルの名前を選択することで、そのスクリプトは実行される。スクリプトメニューは、Classicを除くどのアプリケーションがアクティブなときにも選択できるようになっている。
自分で作ったプログラムについても、/Library/Scriptsメニューに適当にフォルダを作って入れて行ってもいいのであるが、個人で使うプログラムなら、ホームフォルダにあるLibraryフォルダに、Scriptsフォルダに入れておくのがよいだろう。スクリプトメニューの「Open Scripts Folder」という項目を選択すると、ホームのLibraryフォルダにScriptsフォルダが作成されるようではあるが、

◇自分のホーム側にScriptsフォルダを作った場合(「OME」以下の4つの項目がホーム側のScriptsフォルダにあるもの)
 
 

このホームフォルダ内にあるScriptsフォルダの中身もいっしょにスクリプトメニューでは表示してくれる。システム側と、ホームフォルダ側にあるものは分類され、メニュー上では少し隙間ができるようになっている。

スクリプトメニューは、AppleScriptのプログラムを手軽に呼び出すだけに留まらない。非常に便利なことに、Perlのプログラムや、シェルスクリプトのプログラムまでも、スクリプトメニューから呼び出すことができるのである。これらのプログラムは、たとえばTerminalでコマンドとして入力するようなことをやっていたかもしれないが、スクリプトメニューを使えばマウス操作一つで実行できるというわけだ。
シェルスクリプトを作るには、テキストエディタを使って作成すればよい。ファイル名については特に規定はないようで、なんでもかまわないし、日本語のファイル名でも動作する。そして、スクリプトの最初に「#!/bin/sh」という行を作成し、シェルスクリプトであることを明記する。これがないと、スクリプトメニューに項目が現れない。そして、スクリプトのファイルは、必ず改行をLFコードだけのテキストファイルにする必要がある。TextEditで新規に作成した場合にはLFコードになるが、Jeditなどの別のテキストエディタではデフォルトがCRコードになっているので注意が必要だ。また、CRコードを改行にしているテキストをTextEditにコピー&ペーストすると、TextEditでもやはりCRコードを改行にしてしまう。いずれにしても、スクリプトを作るときには確実にLFコードが改行になるようなオプション付き保存ができるエディタを使うのが問題はなさそうだ。ちなみに、シェルスクリプトの標準出力は、UtilitiesフォルダのConsoleというアプリケーションを起動しておけば参照することができる。
Perlのスクリプトの場合も、シェルスクリプトとほぼ同様であるが、1行目は「#!/usr/bin/perl」という行を記載し、2行目以降にPerlでプログラムをどんどんと書き込めばOKである。
シェルスクリプトやPerlのスクリプトは、スクリプトメニューでは独特のアイコンになる。前の図では、「Test」や「Test3」のように書類に#の記号が入ったアイコンがシェルスクリプトである。Perlのスクリプトは書類の中にPの文字が入ったアイコンになる。

Mac OS Xのスクリプティング環境は、AppleScriptだけでなく、Perlやシェルスクリプトにまで広がった。もちろん、プログラム作成やデバッグなどの問題はあるにしても、それらを統合的に手軽につかえるような仕組みをまずは用意してきている点は大いに評価できるポイントであると言えるだろう。
関連リンク