「平気で窓を割る人たち」

今のプロジェクトでは、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