kshのファイル名を出力したい場合

kshのファイル名を出力する必要がある場合、今までは、
typeset -r KSHNAME='filename00.ksh'
みたいに定義してたが、これだとソースをコピペしたときに置換し忘れたりするので、

typeset -r KSHNAME=`basename $0`

って変えたのは良かったんだろうか。ズルイかな。
ちなみに、ksh

echo $0

と書くと

./filename.ksh

って出力されるので、これはディレクトリやファイル名称の一部としては使いにくい。
あと、拡張子以外を切り出すときは、

${KSHNAME%.ksh}

のようにパターンマッチでやる。1行でbasenameと拡張子以外の切り出しをやるのは、シンプルには出来ないっぽい。