シェルスクリプトのdebug tips

シェルスクリプト中でset -x と記述するか、(ba)sh -x の引数をつけて実行すれば、実行されている内容が表示されるので、いちいちecho hogehoge などと書いてまわっていかなくてよい。

#!/bin/sh
date
$ ./hoge.sh
2012年  7月 31日 月曜日 23:10:14 JST
$ sh -x hoge.sh
+ date
2012年  7月 31日 月曜日 23:10:18 JST

sh -x でもset -x でもどっちでもいいんだけど、(たとえset -x の1行とはいえ) /etc/init.d/ 以下など既存のscriptを触りたくない場合には、sh -x /etc/init.d/httpd start などとするとよい。