ものづくりのブログ

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

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

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

スクリプト

コード

スクリプトの内容は以下の通りです。

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

実行

実行するとディレクトリのパスが表示されます。

$ sh sample.sh 
/home/{{ユーザ名}}/work

コマンド説明

dirname コマンド

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

realpath コマンド

realpath は、相対パスを絶対パスに展開するコマンドです。