シェルでは $0 で実行したスクリプトファイルのパスが取れる。ここでスクリプトのファイル名やスクリプトのあるディレクトリパスを切り出したときはどうすればよいか。basename というコマンドを使うとファイル名切り出せる。ただ bash だとパターンマッチ抽出たどコマンドに頼らずできる。
スクリプトのファイル名
1 |
|
##
は先頭の最長マッチ部分を削除する%%
は末尾の最長マッチ部分を削除する
スクリプトのディレクトリパス
1 |
|
%
は末尾の最短マッチ部分を削除する/foo.sh
だと空文字列になってしまうのでがルートに置かれるスクリプトには使えない