shellスクリプトで絶対パスを取得する方法[bash]
概要
shellを実行した際に、スクリプトファイルが存在する絶対パスを取得したいときがある。
スクリプトが存在するディレクトリの外部から実行してもカレントディレクトリを取得できる方法を紹介する。
コード
SCRIPT_DIR=$(cd $(dirname $0); pwd)
説明
$0
: スクリプトの名前 (Ex: test.sh)dirname $0
:$0のディレクトリ部分を返すcd $(dirname $0);
:スクリプトがあるディレクトリに移動pwd
:絶対パスを取得
実行例
ソースコード
test.sh
#!/bin/bash SCRIPT_DIR=$(cd $(dirname $0); pwd) echo $SCRIPT_DIR
実行結果
$ bash test.sh /mnt/c $ mkdir hoge $ cd hoge/ $ bash ../test.sh /mnt/c