为了运行bash脚本,我需要一些参数和标志,因为要求非常棘手,我选择使用像这样的getopt函数
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)只是一个可选的标志。将来我可能需要添加额外的参数,总是可选的。 有什么建议吗?
答案 0 :(得分:2)
示例脚本说明了bash getopts的可选参数,其样式类似于mysql客户端。也支持“-”。
用法: script.sh [-u] [-p | -p] [-] arg1 arg2 ...
gcc ... -nostdinc ... -I./include ...
答案 1 :(得分:1)
可选参数是可选的,用于强制检查VALUE1
和MGROUP
。例如:
[[ -n $VALUE1 && -n $MGROUP ]] || {
echo "mandatory paramter missing"
exit 1
}