【发布时间】:2012-12-24 08:50:56
【问题描述】:
我的shell脚本很简单,如下:
while getopts "abc:" flag; do
echo "$flag" $OPTIND $OPTARG
done
我做了如下一些测试:
Blank@Blank-PC:~/lab/shell/getopts_go$ sh foo.sh -abc CCC Blank
a 1
b 1
c 3 CCC
Blank@Blank-PC:~/lab/shell/getopts_go$ sh foo.sh -a -b -c CCC Blank
a 2
b 3
c 5 CCC
Blank@Blank-PC:~/lab/shell/getopts_go$ sh foo.sh -ab -c CCC Blank
a 1
b 2
c 4 CCC
Blank@Blank-PC:~/lab/shell/getopts_go$ sh foo.sh -a -bc CCC Blank
a 2
b 2
c 4 CCC
我无法理解 OPTIND 如何与不同的命令行调用一起工作,我对输出感到困惑。
你能帮忙弄清楚OPTIND的计算机制吗?
【问题讨论】:
-
理解OPTIND的优秀测试脚本