サブルーチンです。
スクリプト自身が保存されているパスを取得します。
UNIXシェルに投げる事が多いのでUNIX形式への変換も行っています。
スクリプト自身のパスを得る
set tmpPath to ScriptFolder() of me
-- スクリプト自身のパスを得る
on ScriptFolder()
tell application "Finder"
-- パスを取得
set sFolder to parent of (path to me) as text
-- パスをUNIX形式に変換
set sFolder to ((alias sFolder)'s POSIX path)
return sFolder
end tell
end ScriptFolder
説明
「set tmpPath to ScriptFolder() of me」で変数「tmpPath」にサブルーチン「ScriptFolder」が返す処理結果を格納します。
「ScriptFolder() of me」といわれて「on ScriptFolder() ~ end ScriptFolder」の処理が走ります。
「set sFolder to parent of (path to me) as text」で変数「sFolder」にMac OS形式であるコロン区切りのパスが格納されます。
パスの内容は「(path to me)」を指定しているので自身のパスです。
コロン区切りで特に問題ないのであれば、ここまででパスは取れています。
UNIXシェルに投げたい時は、以降の処理を記述してパスの形式を変更します。
「set sFolder to ((alias sFolder)’s POSIX path)」で変数「sFolder」がUNIX形式(POSIX path形式)のスラッシュ区切りのパスで上書きされます。
「return sFolder」で変数「sFolder」に格納されたパスを返しますので、最初の変数「tmpPath」にUNIX形式のパスが格納されます。