ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

シェルスクリプトの内でスクリプトを格納しているディレクトリのパスを取得する方法

シェルスクリプトなどで、「実行しているスクリプトが設置されているディレクトリ」のパスを取得したいというケースがあります。
そんなときは、次のようにすると欲しい情報が取得できます。

スクリプト

スクリプトの内容

BASH_SOURCE=sample.sh
SCRIPTDIR=$(realpath $(dirname ${BASH_SOURCE:-$0}))
echo $SCRIPTDIR

スクリプト実行

$ sh sample.sh 
/home/sato/work

コマンド説明

dirname コマンド

パスで指定された文字列をファイルもしくはディレクトリのパスとみなし、最後の部分を取り除くコマンド

realpath コマンド

相対パスを絶対パスに展開するコマンド