所以,我正在尝试使用bash的内置getopts来处理参数处理,除非我得到一个奇怪的结果。这是我的测试脚本;
#!/bin/sh
HOST=
OWNER=
GROUP=
while getopts "h:o:g" OPTION;
do
case $OPTION in
h)
HOST=$OPTARG
;;
o)
OWNER=$OPTARG
;;
g)
GROUP=$OPTARG
;;
esac
done
echo "$HOST - $OWNER:$GROUP"
然而,当我使用它运行脚本时;
./test.sh -h test.host.com -o skittles -g whatever
我的最后一个arg从未被拉入或被丢弃。我的回声结果是;
test.host.com - skittles:
^ where's my group value? O.o
有谁知道会造成什么?
感谢。
答案 0 :(得分:6)
您希望-g
有一个参数,但在您的选项声明中,没有与您的-g
相关的“:”。
你应该有这个:
h:o:g:
答案 1 :(得分:3)
您的选项字符串在g。
之后缺少: