Bash getopts命令
发布时间:2020-12-16 01:51:35 所属栏目:安全 来源:网络整理
导读:我在他们的网站上关注IBM的例子: (列出#5)http://www.ibm.com/developerworks/library/l-bash-parameters/index.html #!/bin/bashecho "OPTIND starts at $OPTIND"while getopts ":pq:" optname do case "$optname" in "p") echo "Option $optname is speci
我在他们的网站上关注IBM的例子:
(列出#5)http://www.ibm.com/developerworks/library/l-bash-parameters/index.html #!/bin/bash echo "OPTIND starts at $OPTIND" while getopts ":pq:" optname do case "$optname" in "p") echo "Option $optname is specified" ;; "q") echo "Option $optname has value $OPTARG" ;; "?") echo "Unknown option $OPTARG" ;; ":") echo "No argument value for option $OPTARG" ;; *) # Should not occur echo "Unknown error while processing options" ;; esac echo "OPTIND is now $OPTIND" done 我想要的是有一个名字超过1个字母的选项.即-pppp和-qqqq而不是-p和-q. 我写了我的程序并实现-help给了我一个问题…… 解决方法
对于传统的shell命令,-help等效于-h -e -l -p,因此如果使用getopts解析“-help”,它会将其视为四个独立的参数.因此,除非您想自己进行所有解析,否则不能使用前缀为单个连字符的多字母参数.按照惯例,不仅仅是单个字符(也称为“长选项”)的选项前面有两个破折号,而是使事情明确无误.
帮助文本的约定是支持-h和–help. 不幸的是,内置的bash的getopts不支持长选项,但是在所有常见的Linux发行版中都有一个单独的getopt实用程序,可以使用它来支持长选项. There’s more discussion of the topic in this answer (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |