EZ-NET: シェルスクリプトでファイル名や拡張子名を取得する - Linux シェルスクリプト プログラミング
に書いてあるとおりに実施
#!/bin/sh FILENAME=$1 DIRNAME=`dirname "$FILENAME"` EXTNAME=`echo ${FILENAME##*.} | tr a-z A-Z` FILENAME_WITHOUT_EXT=${FILENAME%.*} BASENAME=`basename "$FILENAME_WITHOUT_EXT"` echo FILENAME=$FILENAME echo DIRNAME=$DIRNAME echo EXTNAME=$EXTNAME echo BASENAME=$BASENAME echo FILENAME_WITHOUT_EXT=$FILENAME_WITHOUT_EXT
実行結果
$ ./filename.sh ./filename.sh FILENAME=./filename.sh DIRNAME=. EXTNAME=SH BASENAME=filename FILENAME_WITHOUT_EXT=./filename
$ ./filename.sh /home/hoge/jikken/filename.sh FILENAME=/home/hoge/jikken/filename.sh DIRNAME=/home/hoge/jikken EXTNAME=SH BASENAME=filename FILENAME_WITHOUT_EXT=/home/hoge/jikken/filename