1
我不得不做出一个名为test.sh看起来像下面外壳:getopts的两个参数选项将停止脚本
while getopts a:b: opt
do
case $opt in
a) a1=$OPTARG
;;
b) b1=$OPTARG
eval "b2=\${$OPTIND}"
shift 2;;
esac
done
echo $a1;
echo $b1;
echo $b2;
当我尝试下面的命令,它的工作脚本...
test.sh -a 111 -b 222 333
111
222
333
但如果我尝试这个...
test.sh -b 222 333 -a 111
222
333
它只能显示-b参数,-a选项和agrument后无法-b选项工作... ...
在我的脚本有任何问题???? 谢谢:)
'申报 “B2 = $ OPTIND”'和'OPTIND = $((OPTIND + 1))'将是可取的(前者通常比较安全,并且不比在这里使用'eval'更糟;后者对于整数算术更有效)。 – chepner
谢谢,如果我想再添加一个参数$ b3,我该怎么办? – YOHO