>>625
おまえ、ホントに理解してない奴だな。

set -u はプログラムミスで変数名が違ってたりするのを防ぐのが狙い。
if [ -n "${file:-}" ]; then
なんかの場合は $file がセットされてないかどうか自体を条件判断してるんだから、
if文を実行して file: unbound variable なんてエラーメッセージ出されたら困るだろ。