シェルスクリプトでスクリプトのパスを取得
シェルスクリプトでスクリプト自身のパスを取得
シェルスクリプトを書くときに、cd シェルスクリプトがあるディレクトリ
というようにカレントディレクトリをスクリプト自身のパスに変更したいときがあります。こうすることで、シェルスクリプト内ではそのシェルスクリプトを基準とした相対パスで処理を記述することができます。
やりかた
$(コマンド)
もしくは`コマンド`(バッククォート)でコマンドを実行し、その標準出力を文字列として扱えます。$0には実行したシェルスクリプトの名前が入ります。
#!/bin/sh
cd $(dirname $0)
コマンドは、実行するシェルスクリプトがあるディレクトリの位置を相対パスで取得し、そこに移動するという意味です。