やましなぶろぐ

bash script:シェルスクリプトのディレクトリを絶対パスで取得する

実行ディレクトリに影響を受けないスクリプトの作成方法

CURDIR=$(cd $(dirname $0) && pwd)

🕒 Last mod: 2021-05-03


1. 簡単なことだけれでも調べてみると微妙に奥が深い

スクリプトの存在するディレクトリの絶対パスを取得したいことは多くある。

実現したいことは簡単なことで、ネットで調べても情報が多い。

けれども実際に調べて見ると微妙に奥が深くて最終的にこうすれば大丈夫だ!と納得できるまでに結構時間がかかりました。

自分なりに納得した方法を整理しておきます。

2. 実装

CURDIR.sh
#!/usr/bin/env bash

CURDIR=$(cd $(dirname $0) && pwd)
echo ${CURDIR}

3. まとめ

簡単なことだけれども調べてみると微妙に奥が深いことがあります。

今回も、絶対パスと相対パス、コマンド置換時のサブシェル、&&、など新しい知識が身につきました。

シェルスクリプトに詳しくないので色々と調べるのに時間がかかりましたが、最終的にはサンプルスクリプトまで作成できました。

不慣れで何かしら間違えると想定外の大きな影響を受けることがあるのでシェルスクリプトを使用するのは不安と恐怖を感じます。

完全に理解するのは難しいですが自分が使用する範囲のことは自分なりにしっかりと理解しておきたいです。

今後はこのサンプルを有効活用できることでしょう。