3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(Linux)シェルスクリプトで自身の絶対パスを取得したい

シェルスクリプトで、自分自身のスクリプト絶対パスを取得する方法ですが、下記のようにするといいようです。

#!/bin/sh

#↓自身のスクリプト絶対パス(ファイル名無し)

echo $(cd $(dirname $0);pwd)

#↓自身のスクリプト絶対パス(ファイル名有り)

echo $(cd $(dirname $0) && pwd)/$(basename $0)

結果:

/root/sh

/root/sh/test01.sh

ちなみに、これで知ったのですが、「$()」でコマンドの実行結果を取れるようです。「``」と同じ意味みたいです。

「$()」のほうがネストが効くので使いやすいかもしれません。

参考:

シェルスクリプトで相対パス指定したファイルを絶対パスへ変換する | 半袖野郎 blog.hansode.org

Bashシェルスクリプトで自分の絶対パスを取得 | #8

変数を使用する - UNIX & Linux コマンド・シェルスクリプト リファレンス