ダブルクォーテーションをエスケープ
たまにシェルスクリプト内でApplescriptを使いたいときがあります。
例えばAutomator内でシェルスクリプトを使うときはechoが使えません。
そこでスクリプトの途中で何かをユーザーに通知したいときにはApplescriptでダイアログを出すと便利です。
シェル上でAppleScriptを使うコマンドはosascriptです。
osascript ファイル名
もしくは osascript -e
の後に続けてAppleScriptコマンドを書きます。
osascriptに渡すAppleScripitの中でシェルで設定した変数を使う時には,全体をダブルクォーテーションで囲み、変数を囲むダブルクォーテーションはエスケープします。
例えばこんな感じです。
Automatorアプリでドラッグ&ドロップしたファイル名を順番にダイアログで表示する例
for f in "$@"
do
echo $f
osascript -e "display dialog \"$f\" "
done
なお、全体をシングルクォーテーションで囲むとエラーになります。
全部ダブルクォーテーションで通すのがいいみたいです。