while getopts gpr: | gpd: name
do
case $name in
g) echo " -g";;
p) echo " -p";;
r) echo " -r with '$OPTARG'";;
d) echo " -d with '$OPTARG'";;
esac
done
我知道这写错了。我想这样写,所以它会显示我需要它做什么。
带g,p,d或r选项的脚本。关键是OR。
我试过谷歌,阅读手册,发现了很多简单的例子。 问题是,如果有办法做到这一点或getopts不支持这种行为。
答案 0 :(得分:0)
以下内容将在解析-g
,-p
,-r
或-d
中的第一个后停止处理选项。如果需要,您可以在if
语句中执行更强大的操作(发出警告,退出脚本等)。
while getopts gpr:d: name
do
if (( option_found == 1 )); then
break
fi
case $name in
g) echo " -g"; option_found=1;;
p) echo " -p"; option_found=1;;
r) echo " -r with '$OPTARG'"; option_found=1;;
d) echo " -d with '$OPTARG'"; option_found=1;;
esac
done
就其本身而言,getopts
并未对所使用的选项强制执行任何形式的互斥。