シェルでは $0 で実行したスクリプトファイルのパスが取れる。ここでスクリプト名だけを切り出したときはどうすればよいか。basename というコマンドを使うと切り出せる。また指定したサフィックスを取り除くことができる。
bash だとパターンマッチによる切り出しができる。
#!/bin/bash
base=${0##*/}
echo $base
echo basename $0
echo ${base%.sh}
echo basename $0 .sh
を実行すると、
$ /home/toshi/shell/hoge.sh
hoge.sh
hoge.sh
hoge
hoge
$ ./hoge.sh
hoge.sh
hoge.sh
hoge
hoge
となる。
※スクリプト名を切り出して何に使うのか。
⇒例えば view と vi のように実行名によって動作を変えるときなんかに使います。