\r\n\r\n
例えば、あなたがbashスクリプトのウィザードで、技術に詳しくない友人や家族のためにタスクを自動化するのが好きだとしましょう。たとえ問題を完全に解決するスクリプトを渡したとしても、自分で端末を使うことに不安を感じるかもしれません。この場合、それらのアクションをすべて手動で実行することができます。
幸いなことに、AppleScriptはユーザーフレンドリーな言語であり、スクリプトを共有可能でGUIに適したコンテンツに変換することが簡単にできます。
AppleScriptはMacOS 7に遡る古いプログラミング言語で、1980年代にユーザー標準に沿った読みやすい言語として設計され、Finderと連携してワークフローを自動化することを主目的とした。
bashスクリプトのような複雑なワークフローの実行や環境設定ファイルの修正に使用でき、ボタンをクリックするだけで簡素化することができます。また、ファイルとして入力し、ドラッグ&ドロップすることも可能です。
注:AppleScriptの構文に関するガイドから始め、ドアへの作業フローを説明します。
UtilitiesフォルダーにあるScript Editorツールは、実用的なAppleScriptを書くためのAppleScriptテキストエディターでありIDEです。アップルスクリプト言語ガイドを読み込むときに使用します。
また、「ウィンドウ」> 「ライブラリ」で、可能な限りのアップルスクリプトコマンドのリストを見ることができます。
Bashは、あなたのMacを外科的に、超特殊な方法で操作するのに役立ちます。あなたのマシンでやりたいことはほとんど何でも書くことができます。
通常、bashスクリプトを実行する場合、実行可能なパーミッションを確保する必要があります。その後、Terminalを開き、スクリプトのパスに移動し、Returnをクリックして実行する必要があります。しかし、AppleScriptを使えば、ダブルクリックで素早くbashスクリプトを実行することができます。
AppleScriptにbashスクリプトを追加するのは、簡単な作業です。まず、Applications> Utilities> Script Editorで、新しいアップルスクリプトを開いてください。空白のエディタウィンドウが表示されます。
お気に入りのmacOSのテキストエディタでbashスクリプトを準備するか、スクリプトエディタで適切に実行します。準備ができたら
do shell script以下のコマンドで送信することができます。
do shell script "Command"以下のように、セミコロン(;)を追加して複数のコマンドを送信することができます。
do shell script "Command1; Command 2"既存のbashスクリプトを他の場所から参照するには、単に次のようにします。
do shell script "/path/to/your/script.sh"管理者権限を必要とするコマンドを実行するには、まずAppleScriptで次のように設定します。
do shell script "command" user name "USER" password "PASSWORD" with administrator privileges再生ボタンをクリックすると、アップルスクリプトが実行され、構文エラーがないかどうかが確認されます。最後に、アップルスクリプトを保存します。「ファイル形式」で「アプリケーション」を選択します。これでダブルクリックで実行できるようになります。
ところで、逆にbashスクリプトにAppleScriptのコマンドを追加したい場合はどうすればいいのでしょうか?まあ、そんなこともできるんですね。
bashスクリプトの中に
osascriptコマンドの後にアップルスクリプトを実行することで、ユーザー入力や警告バナーなどの面白い要素を追加することができます。
例えば、ブログの準備のためにサイズを変更する必要がある画像がたくさんある場合、またはすべてのファイルを種類別に分類したい場合を考えてみましょう。これらの操作を行うためのスクリプトを書くこともできますが、従来のbashスクリプトでは、操作したい各ファイルのフルパスをそれぞれの操作で書く必要がありました。これは、大量のファイルを扱うときに面倒になることがあります。
幸いなことに、アップルスクリプトを設定すれば、対象ファイルをドラッグするだけで入力として実行することができます。このような特殊なアプリケーションをドロプレットと呼びます。ここでは、その作成方法をご紹介します。
スクリプト上に直接ファイルをドラッグ&ドロップできるようになりました。
次の例は、この2つの便利な機能を示しています。
例えば、ファイル、スクリプト、ドキュメントを友人に渡すとき、彼らがそれをいじらないようにしたいとします。このスクリプトを使用すると、任意のファイルへの書き込みアクセスを簡単に削除して、読み取り専用にすることができます。
ドロップにファイルを置くと、そのパス名はHFS形式(Hierarchical File System)でAppleScriptに読み込まれることを覚えておいてください。この場合、コロンが使われ、スペースをエスケープしないので、デスクトップ上のファイルは次のようになります。
Macintosh HD:Users:jdoe:Desktop:myfileBashはPOSIXという別のパス規格を使っているので、Bashの中で同じファイルでも
Macintosh\ HD/Users/jdoe/Desktop/myfile以下のスクリプトは、ファイル名を適切なパス基準に変換してからパーミッションを変更します。
on open dropped_file set bash_path_file to the POSIX path of dropped_file do shell script "chmod -R -w " & quoted form of bash_path_fileend openさて、自動化のかゆいところに手が届くようになったところで、MacのAutomatorに飛び込んでみましょう。 AutomatorはAppleScriptと似ているところがたくさんあります。スクリプトや自動化を始めたばかりであれば、Automatorはよりシンプルな入り口だと感じるかもしれません。 読みやすいプログラミング言語を使う代わりに、Automatorでは直感的なドラッグ&ドロップバブルと習得しやすいインターフェイスを使って、日々のタスクを簡素化します。