どちらのスクリプトコンテキストも他のスクリプトコンテキストで実行できます(シェルスクリプトは/usr/bin/osascript
AppleScriptを呼び出すために呼び出すことができ、AppleScriptにはdo shell script
コマンド)、実際には一方が他方より適しているコンテキストがあります。
両方のスクリプト言語は「接着剤」言語です。それらは自分自身で最小限のことを実行でき、代わりに他のプログラムの機能を呼び出すことでタスクのほとんどを実行できます。シェルスクリプトはUnixパイプを使用しますが、AppleScriptはtell application
構文ますます。
分岐点は、AppleScriptsがスクリプト可能なアプリケーション(ほとんどの場合GUIアプリケーション)と直接通信するのに対し、シェルスクリプトは主にコマンドラインプログラムと通信することです(一部はグラフィックユーザーインターフェースを起動できますが、多くはそうしません)。
ファイル管理タスクに関しては、両方のアプローチが機能します。Tell Application Finder
ファイルをコピーするか、実行することができますcp
シェルスクリプトでコマンドを。それでは、なぜ一方を他方の上で使用するのでしょうか?確かに、一部のスクリプト作成者は他の言語よりも1つの言語に精通しているため、そのツールを使用することを好みます。ただし、スクリプトのユーザーを考慮することをお勧めします。AppleScriptは、Mac GUIから呼び出すことができます。AppleScriptアプリケーションをダブルクリックするか、ファイルをドロップするか、システム全体または特定のプログラム内でAppleScriptメニューを使用します。メールなどのプログラムは、着信メッセージに対してAppleScriptを実行してフィルタリングするように設定できます。Macを「Macに似た」方法で(つまりGUIから)使用することに慣れているユーザーにとっては、AppleScriptの方がアクセスしやすいことがよくあります。
シェルスクリプトは、多くの場合(常にではありませんが)ターミナルに存在します。既にターミナルを使用している場合、シェルスクリプトを実行すると、AppleScriptを呼び出すよりも便利な場合があります。一方、多くのユーザーは、ターミナルウィンドウにコマンドを入力したり、ターミナルウィンドウを開いて魔法をかけるスクリプトファイルをクリックしたりする必要があるため、手間がかかります。個人的には、シェルスクリプトの構文はAppleScriptの構文よりも読みやすいと思っていますが、私はそのスクリプトについて少数派だと思います。シェルスクリプトは、さまざまなUnixライクシステムのユーザーになじみがあります。
いずれにしても、どちらもMacをよりよく制御するための強力なツールです。