実行したシェルスクリプトのおいてあるディレクトリを取得する
実行したシェルスクリプトと同じディレクトリの下に、テンポラリのファイルを置いたりディレクトリを置いたりしたくなる事があると思うのだけど、そういったときにはそのシェルスクリプトを実行した時のカレントディレクトリに注意しなくてはいけない。
touch "./hoge"
こんな風なシェルスクリプト(仮に hogehoge.sh とする)にすると、/tmp に居る状態で~/hogehoge.sh を実行すると /tmp 配下に hoge ファイルが作られてしまう。
どうするかというと
シェルスクリプトのディレクトリを取得して、そのディレクトリをベースとしてやれば良い。
その為に、 dirname コマンドを使う。
touch `dirname ${0}`/hoge
このようにするとシェルスクリプトがあるディレクトリをベースとして作業する事が可能になる。
例えば、
DIR=`dirname ${0}`
のようにしてベースディレクトリとして変数に格納しておくと良いね。