かんちゃんの備忘録

プログラミングや言語処理、ガジェットなど個人の備忘録です。(メモ書き+α)

シェルスクリプトでスクリプトのパスを取得

シェルスクリプトスクリプト自身のパスを取得

シェルスクリプトを書くときに、cd シェルスクリプトがあるディレクトリというようにカレントディレクトリをスクリプト自身のパスに変更したいときがあります。
こうすることで、シェルスクリプト内ではそのシェルスクリプトを基準とした相対パスで処理を記述することができます。

やりかた

$(コマンド)もしくは`コマンド`(バッククォート)でコマンドを実行し、その標準出力を文字列として扱えます。
$0には実行したシェルスクリプトの名前が入ります。
#!/bin/sh

cd $(dirname $0)
コマンドは、実行するシェルスクリプトがあるディレクトリの位置を相対パスで取得し、そこに移動するという意味です。