# 各フラグを初期化
file= verbose= quiet= long=
while getopts f:vql opt
do
case "$opt" in
"f") file=$OPTARG
;;
"v") verbose=true
;;
"q") quiet=true
;;
"l") long=true
;;
esac
done
# オプションをすべて削除し、引数だけ残す
shift $((OPTIND -1 ))
# 各フラグを初期化
file= verbose= quiet= long=
# 自分でエラー処理を行うために、先頭にコロンを指定する
while getopts :f:vql opt
do
case "$opt" in
"f") file=$OPTARG
;;
"v") verbose=true
;;
"q") quiet=true
;;
"l") long=true
;;
"?") echo "$0: 不正なオプションです -$OPTARG" >&2
echo "Usage: $0 [-f file] [-vql] [files ...]" >&2
exit 1
;;
esac
done
# オプションをすべて削除し、引数だけ残す
shift $((OPTIND -1 ))