Bash getopts未提供任何参数
如何检查是否没有提供必需的参数?我发现开关情况下的“:”选项应该足够用于此目的,但它从未进入该情况(代码块)。不管我是把“冒号”放在开头还是其他地方 我的代码:Bash getopts未提供任何参数,bash,getopts,Bash,Getopts,如何检查是否没有提供必需的参数?我发现开关情况下的“:”选项应该足够用于此目的,但它从未进入该情况(代码块)。不管我是把“冒号”放在开头还是其他地方 我的代码: while getopts :a:b: OPTION; do case "$OPTION" in a) var1=$OPTARG ;; b) var2=$OPTARG ;;
while getopts :a:b: OPTION;
do
case "$OPTION" in
a)
var1=$OPTARG
;;
b)
var2=$OPTARG
;;
?)
exitScript "`echo "Invalid option $OPTARG"`" "5"
;;
:)
exitScript "`echo "Option -$OPTARG requires an argument."`" "5"
;;
*)
exitScript "`echo "Option $OPTARG unrecognized."`" "5"
;;
esac
done
THX提前。
?)
在案例中
块应写为“?”
您必须退出?
。下一个can(部分)工作
部分原因是什么时候将调用上述脚本作为
$ bash script -a a_arg -b b_arg extra
威尔会像你期望的那样工作
arg for a :a_arg:
arg for b :b_arg:
unused parameters:extra:
但当你把它称为
bash script -a -b b_arg
威尔印刷品
arg for a :-b:
arg for b ::
unused parameters:b_arg:
什么不是,什么是你想要的
还有UUOE。(使用echo)。+1为了澄清,在
的情况下,
选择器中不带引号的?
是一个全局模式,它匹配任何单个字符-在这里截取:
的值,并且永远不会到达为其指定的子句。首先,尽量提供最少的工作示例:您的示例不是因为exitScript
函数。
arg for a :-b:
arg for b ::
unused parameters:b_arg: