#!/bin/sh
DIR=$1
rm -rf $DIR/
なんてやると$1がなかった時に / が消されてしまうので非常に危険。こういう場合は set -u して、未定義の変数があればエラーにすることが推奨される。
/Users/kazuhiro/Dropbox/code/sh/set_u.sh: line 3: $1: unbound variable
ただし、 set -u すると引数の個数を$#を使って、いちいちチェックしないといけない。
#!/bin/sh
set -u
# 引数のサイズをチェック
if [ $# -le 1 ]; then
exit 1
fi
DIR=$1
rm -rf $DIR/
ちょっと面倒だけど set -u している時は $# 使いましょうということで。