bash 长选项奇怪的行为 - 只是出于好奇

问题描述 投票:0回答:1
我有这个 bash 脚本,它在获取参数后执行一些操作。我很好奇的是,当我刚刚指定“环境”作为有效选项时,为什么它也接受“--env,--envi,...”。 我可以以某种方式降低它的容忍度,只接受整个单词吗?

....... args=$(getopt -a -o e: --long 'help,environment:' -- "$@") if [[ $? -gt 0 ]]; then usage fi eval set -- ${args} while : do case $1 in -e | --environment) { case $2 in PROD) CHECK_FILE=${NFS_MOUNT_PROD}/${FILE_MONITORING}; break ;; INT) CHECK_FILE=${NFS_MOUNT_INT}/${FILE_MONITORING}; break ;; *) usage; exit1;; esac } shift 2 ;; --help) usage ; shift ;; # -- means the end of the arguments; drop this, and break out of the while loop --) shift; break ;; *) >&2 echo Unsupported option: $1 usage ;; esac done .......
谢谢大家和问候,

JP

bash getopts
1个回答
0
投票
我查看了

getopt(或 man getopt

)的手册页,发现了以下内容:

长选项可以缩写,只要缩写不歧义即可。

这里是一个关于使用 getopt 与 getops 的不错的答案线程。

© www.soinside.com 2019 - 2024. All rights reserved.