覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

Bash - 実行したシェルスクリプトが存在するディレクトリの絶対パス取得

Linuxで実行したシェルスクリプト自身が格納されているディレクトリの絶対パス(フルパス)を取得したい場合の方法です。

/hogehoge/fuga/fuga/exec_sample.sh を実行した場合に /hogehoge/fuga/fuga を取得したい という内容です。


実行されるシェルスクリプト内で以下のようにすれば取得できます。(cd によってカレントディレクトリが変化したりはしません)

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

上記の場合 SHELL_DIR に絶対パスが格納されます。


ついでですが、シェルスクリプトが存在しているディレクトリの親ディレクトリは以下で取得できます

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