首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getopts -忽略选项?

getopts -忽略选项?
EN

Stack Overflow用户
提问于 2013-11-26 08:31:31
回答 1查看 426关注 0票数 1

使用getopts编写一些脚本。它包括下一个:

代码语言:javascript
复制
while getopts "hlcpx:" opt; do
  case $opt in
    h)
      usage && exit 1
      ;;
    l)
      last=1
      current=""
      ;;
    c)
      current=1
      last=""
      ;;
    p)
      prints=1
      exports=""
      ;;
    x)
      exports=1
      prints=""
      ;;
    \?)
      usage && exit 1
      ;;
  esac
done

echo "Using: current=$current last=$last prints=$prints exports=$exports"

但是-当我使用选项-x-c运行它时,我得到了:

代码语言:javascript
复制
$ ./version.sh -x -l
Using: current= last= prints= exports=1

$ ./version.sh -x -c
Using: current= last= prints= exports=1

如果我删除了: -它正确地工作:

代码语言:javascript
复制
$ cat version.sh | grep whil
while getopts "hlcpx" opt; do

$ ./version.sh -x -c
Using: current=1 last= prints= exports=1

$ ./version.sh -x -l
Using: current= last=1 prints= exports=1

我做错什么了?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-26 08:37:25

getopts按设计的方式工作。如果不需要将参数传递给-x选项,则不要将:添加到getopts选项字符串中的x中。

或者,按照预期的语法使用您的脚本,例如:

代码语言:javascript
复制
./version.sh -x foo -c
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20211915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档