シェルスクリプトなどで、「実行しているスクリプトが設置されているディレクトリ」のパスを取得したいというケースがあります。
そんなときは、次のようにすると欲しい情報が取得できます。
スクリプト
コード
スクリプトの内容は以下の通りです。
BASH_SOURCE=sample.sh SCRIPTDIR=$(realpath $(dirname ${BASH_SOURCE:-$0})) echo $SCRIPTDIR
実行
実行するとディレクトリのパスが表示されます。
$ sh sample.sh /home/{{ユーザ名}}/work
コマンド説明
dirname コマンド
dirname は、パスで指定された文字列をファイルもしくはディレクトリのパスとみなし、最後の部分を取り除くコマンドです。
realpath コマンド
realpath は、相対パスを絶対パスに展開するコマンドです。