0
为了运行bash脚本我需要一些参数和标志,因为需求是相当棘手,我选择使用getopt的功能这样getopts的所有可选参数
while getopts ":s:g:r" o; do
case "${o}" in
s)
# Variables that require value
VALUE1=${OPTARG}
;;
g)
# Variables that require value
MGROUP=${OPTARG}
;;
r)
# Variables that, if present, set just a flag
ASROOT=1
;;
*)
echo "Usage: ./myscript.sh -s value1 -g value2 -r"
;;
esac
done
我想所有参数都是可选的,所以我可以稍后在代码中写出一些条件,前两个(s和g)带有参数,第三个(r)只是一个可选标志。在未来,我可能需要添加额外的参数,始终可选。 有什么建议吗?
首先我建议你编辑的标题,因为你问的是关于getopts的(bash的内置),而不是getopt说明(GNU替代)。所以,作为可选参数,你说有时候你会使用带有参数的选项,有时候你需要使用它而没有参数?像-s“可选参数”? –
投票结束,不清楚。你的实际要求是什么? –
好吧,首先问题是关于getops,对我来说编辑标题是很好的。其次我的问题特别关注这一行:while getopts“:s:g:r”o;做 - 问题是:如何让所有选项不是强制性的。一个需要参数的选项必须有它,任何只是一个标志的选项都必须保持这种方式。道歉不明确,希望这有助于澄清更多。谢谢大家 –