3
我意识到shift会将cli args n空间的数组移到左侧,而n的默认值是1.这意味着我可以在while循环内使用$ 1 shift将数组的值赋给现有的变量。我不太明白的是为什么它在下面的这个上下文中被使用。输入参数已经被赋值为数值,并且删除shift $((OPTIND-1))不会改变这个事实。来源:http://linux.die.net/man/3/optind
while getopts ":h:a:fc" opt; do
case $opt in
h)
print_help
exit 0
;;
a)
aaaa=${OPTARG}
;;
f)
force=1
;;
c)
CLEAN=1
;;
\?)
echoerr "Invalid option -$OPTARG"
print_help
exit 1
;;
esac
done
shift $((OPTIND-1))
如果还有位置参数会怎么样? – 2014-10-10 07:41:21