我有一个简单的脚本(如下),它具有互斥的参数。
脚本的参数应该是./scriptname.sh -m|-d [-n]
,但是,用户可以运行./scriptname.sh -m -d
错误的脚本。
问题:如何强制用户只提供了一个互斥参数?
#!/bin/sh
usage() {
cat <<EOF
Usage: $0 -m|-d [-n]
where:
-m create minimal box
-d create desktop box
-n perform headless build
EOF
exit 0
}
headless=
buildtype=
while getopts 'mdnh' flag; do
case "$flag" in
m) buildtype='minimal' ;;
d) buildtype='desktop' ;;
n) headless=1 ;;
h) usage ;;
\?) usage ;;
*) usage ;;
esac
done
[ -n "$buildtype" ] && usage