Automator のシェルスクリプトで $0 を取得する

ゼロドルもらってもしかたないのでお金の話ではありません。シェルスクリプトのお話です。
シェルスクリプトスクリプトのあるディレクトリを取得したいとき、

dir="`dirname $0`"

なんてやったりしますが、Automator だと $0 にパスが入りませんので AppleScript を経由して実現します。
次のようなスクリプトを書くと「.app」のパスが出力されるので、これをシェルスクリプトに引数として渡せば $1 ($0 ではない) にパスが入ります。

path to current application

ただ、これだともともあったコマンドライン引数が消えるので、

on run {input, parameters}
	set appPath to path to current application
	set input's front to appPath
	input
end run

とやると引数の先頭にパスを加えたようになって便利です。「/dir/a.app」に「/docs/doc.txt」をドラッグアンドドロップすると $0 は変更されませんが、$1 に「/dir/a.app」が入り $2 に「/docs/doc.txt」 が入ります。
シェルスクリプトの先頭で

appPath="$1"
shift

としておけば $@ がいつもどおりになります。
画像にすると、

こんなかんじ。