免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5196 | 回复: 5
打印 上一主题 下一主题

$OPTIND问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-16 19:20 |只看该作者 |倒序浏览
俺是SHELL菜鸟,这几天看了新手导航版块里waker 介绍的帖子。
其中设计到$OPTIND的问题一直没弄明白,不知道具体$OPTIND的值是如何递增的。

在cuci大大的文章http://bbs.chinaunix.net/viewthread.php?tid=557642中有如下代码
#--拷贝程序

  COPIES=1
  VERBOSE=N
  while getopts vc:OPTION
  do
    case $OPTION
    in
      c)COPIES=$OPTARG;;
      v)VERBOSE=Y;;
      \?)echo "无效参数!"
        exit 1;;
    esac
  done
  if [ $OPTIND -gt $# ]   then
    echo "No file name specified"
     exit 2
  fi
  shift 'expr $OPTIND - 1'
  FILE=$1
  COPY=0
  while [ $COPIES -gt $COPY ]
  do
    COPY='expr $COPY + 1'
    cp $FILE $ {FILE} $ {COPY}
    if [ VERBOSE = Y }
    then
      echo ${FILE} $ {COPY}
    fi
  done

没有明白里面if [ $OPTIND -gt $# ] 为何代表了“没有指定文件名称”这样一种情况,希望达人能详细的指点一下。

谢谢

论坛徽章:
0
2 [报告]
发表于 2007-04-16 20:04 |只看该作者
顶一下,是不是问的问题太菜了:( 我自己去看看吧....

论坛徽章:
0
3 [报告]
发表于 2007-04-16 20:11 |只看该作者
help getopts

看看帮助吧. ^^

论坛徽章:
0
4 [报告]
发表于 2007-04-16 20:35 |只看该作者
嗯嗯 谢谢大大 :)

论坛徽章:
0
5 [报告]
发表于 2012-05-26 23:14 |只看该作者
http://www.51testing.com/?uid-22 ... space-itemid-225325
从这里可以找到答案 慢慢看 细细品

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
6 [报告]
发表于 2012-05-27 07:11 |只看该作者
# ./test.sh -v -c 1 ChinaUnix
value of $OPTIND is: 4
value of $# is: 4

# ./test.sh -v -c 1
value of $OPTIND is: 4
value of $# is: 3
No file name specified

没有指定文件名称,不属于getopts命令处理的范围,不会影响$OPTIND,但是属于$#的范围。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP