「平気で窓を割る人たち」
今のプロジェクトでは、exit 0で正常終了する箇所は1つしかない形のシェルスクリプトを作成している。昨日書いた処理をメンバに組み込んでもらったら、いつの間にか正常終了の出口が2つになっていた。異常系の処理は省いたが以下のような形で対象性が悪い。
#!/usr/bin/ksh typeset -i RETURN_OK=0 # (中略) # 起動サーバが01かどうかで処理が分かれる if [ ${SERVER} = '01' ] ;then # サーバ01での処理(ほんとは数十行) ... else # それ以外のサーバでの処理(ほんとは数十行) ... # 正常終了 exit ${RETURN_OK} # なぜここに??? fi # 正常終了 exit ${RETURN_OK}
以前に以下の文章等を読んでもらっていたのだけれど、気づいてもらえないと本当に悲しくなる。議論してブラッシュアップしていきたいと思っているのに、ちょっと目を離すとすぐに壊れていくのはなぜなんだ〜!
「最後行ではtrueを返すよう作れ」?
http://d.hatena.ne.jp/JavaBlack/20070403/p1