小编Bla*_*ank的帖子

OPTIND变量如何在shell内置的getopts中工作

我的shell脚本非常简单,如下所示:

  while getopts "abc:" flag; do
         echo "$flag" $OPTIND $OPTARG
  done
Run Code Online (Sandbox Code Playgroud)

我做了一些测试如下:

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
Run Code Online (Sandbox Code Playgroud)

我无法理解如何OPTIND使用不同的命令行调用,我对输出感到困惑.

你能帮助弄清楚计算机制OPTIND吗?

bash shell getopts

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

bash ×1

getopts ×1

shell ×1