Bash

[bash] 実行スクリプトの絶対パスの取得

More than 1 year has passed since last update.

毎回調べてるので使い方メモ

スクリプトの配置位置、実行位置を気にせずにスクリプトの実行をしたい

相対パスから絶対パスへの変換に使用する


実装


スクリプトの絶対パスの取得

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


どこから実行してもパスは変化しない