かんちゃんの備忘録

プログラミングや言語処理、ゲームなど知的好奇心のための備忘録(個人の感想)です。

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

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

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

やりかた

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

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