シェルスクリプトで自身のファイルパスを取得する

シェルスクリプトで自身のファイルパスを取得するには、以下のような感じにしたら良いです。

#!/bin/sh
my_dirname() { echo ${1%/*}; }
PWD=`pwd`

case "$0" in
/*) DIR=`my_dirname "$0"` ;;
*) DIR=`my_dirname "$PWD/$0"` ;;
esac

echo $DIR