毎回調べてるので使い方メモ
スクリプトの配置位置、実行位置を気にせずにスクリプトの実行をしたい
相対パスから絶対パスへの変換に使用する
実装
スクリプトの絶対パスの取得
SCRIPT_DIR=$(cd $(dirname $0); pwd)
-
$0で実行コマンドを取得 -
dirnameでベースディレクトリを取得 - サブシェル内で
cdで移動 -
pwdで絶対パスの取得
使用例
test.sh
# !/bin/bash
SCRIPT_DIR=$(cd $(dirname $0); pwd)
echo $SCRIPT_DIR
使用例
$ ./test.sh
/tmp
$ mkdir hoge
$ cd hoge/
$ ../test.sh
/tmp
どこから実行してもパスは変化しない