シェルスクリプトでどこからスクリプト叩いても同じ動作するように
cd `dirname $0`
をよく使うが、cd 実行後に相対パスで実行するとスクリプトの配置ディレクトリに移動してくれなくなる
smple.sh
#!/bin/bash
cd `dirname $0`
echo "`pwd` \n"
cd /usr/local
echo "`pwd` \n"
cd `dirname $0`
echo "`pwd` \n"
実行結果
[16:26:36 tmp]$ pwd
/tmp
[16:26:58 tmp]$ sh sample.sh
/tmp
/usr/local
/usr/local
[16:27:03 tmp]$ sh /tmp/sample.sh
/tmp
/usr/local
/tmp
[16:27:09 tmp]$
$0(コマンド)のdirnameなので当たり前といえば当たり前ですが、結構はまった