while [ $# -gt 0 ] ; do
case $1 in
-a|--auto-backup)
auto_backup=true
;;
-d|--debug-level)
_debug_mode=true
case $1 in
-d)
shift
_debug_level=$1
;;
--debug-level)
_debug_level=${1#*=}
;;
esac
;;
-h)
usage -s
;;
--help)
usage -l
;;
-n|--dry-run)
_dry_run=true
;;
-[a-zA-Z][a-zA-Z]*)
__options=`echo $1 | sed -Ee 's/(.)/\1 /g' -e 's/([[:alpha:]])/-\1/g' -e \
's/ *$//'`
shift
set -- ${__options} $*
;;
*)
break
;;
esac
shift
done
initialize $@
ただし,initializeで
case $1 in
-*)
msg initialize "illegal option \`$1'"
usage -s
;;
esac