shellを実行したとき、下記のシェルを実行した場所や実行方法で挙動が変わるのがちょっと嫌でした。
・シェルの格納ディレクトリでそのシェルを実行したとき
・絶対パスでシェルを実行したとき
この方法を解消するには次の2つの方法から選べます。
①シェル内部でのパス指定を全て絶対パスにする。
②実行したシェルの先頭で、シェルの格納ディレクトリを取得し、そのシェルからの相対パスで記述する。
今回は②を実現するためのシェルの格納ディレクトリを取得する方法を調べてみました。
具体的なコマンドはこちら
$(cd $(dirname $0); pwd)
便利!
特に、テスト環境が複数あり、上位ディレクトリのパスが環境変数で微妙に異なる開発をしている時に特に便利。
環境に依存しないシェルを開発するのには必須の考え方だと思います