gpt4 book ai didi

Bash getopts 命令

转载 作者:行者123 更新时间:2023-11-29 09:16:56 24 4
gpt4 key购买 nike

我在他们的网站上关注 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

关于Bash getopts 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9880261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com