2009年11月19日木曜日

シェルスクリプト実行時にどこから実行してもカレントディレクトリをスクリプトのパスに設定

いままで、いろいろな現場を見てきましたが、シェルスクリプトと同じディレクトリに移ってから処理をするシェルスクリプトを多く見てきました.フルパスで指定しているので、シェルスクリプトのパスを変更すると、スクリプト内のパスも変更しなければならなくてはならず、一つや二つなら直せばいいですが、大量にある場合に置換したりとか、開発環境と本番環境でパスを書き換えなければいけなかったりして、面倒。

/home/hoge/test.sh
#!/bin/bash

cd /home/hoge
php sample.php 

これを下のようにすれば、作業ディレクトリがどこであっても適切に処理されます。

/home/hoge/test.sh
#!/bin/bash

cd `dirname $0`
php sample.php 

これで、環境への依存度が減らせます。

0 件のコメント: