シェルスクリプトのおまじない

#!/bin/bash
cd `dirname $0`
# 
# 後は書きたい処理
#

#!/bin/bash
シェルスクリプトとして実行するためのおまじない(Shebangという名前がついてるらしい)。
#!/bin/shを先頭に書いてる例も多いし、実際大抵の場合はそれで問題なく動くが、異なるOSで動かした際にまれに異なる挙動をすることがあるので、明示的にbashを指定しておいたほうがいい……と思う。

 

参考
https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%90%E3%83%B3_(Unix)
http://www.m-bsys.com/knowledge/linux-header
http://blog.aqutras.com/entry/2016/03/11/104801

 

cd `dirname $0`
シェルスクリプトのあるディレクトリへ移動する。
シェルスクリプト内で記述するすべてのファイルパスを絶対パスで書く(あるいはファイルパスの記述がない)のなら必要ない。
ただしもし相対パスを記述していた場合、パスはシェルスクリプトを実行したときのディレクトリを元に求めることになるため、実行したときのディレクトリが想定と異なっていた際には相対パスが示す先も想定と異なってしまう。
初めからシェルスクリプトのあるディレクトリに移動させてしまえば、実行元のディレクトリの場所の影響をうけなくなる。