【发布时间】:2015-10-15 14:09:02
【问题描述】:
我正在尝试编写一个难度适中的 bash 程序,但不知何故我无法解析命令行参数并使用 getopt 设置默认参数。
Getopt 以某种方式忽略了可选参数,将它们设置在 -- 之后,表示参数结束。
简单测试,其中需要 l(list):
getopt -s bash -o l: -l list: -- -l test
生产:
-l 'test' --
如果我将 l(list) 定义为可选,则输出为:
getopt -s bash -o l:: -l list:: -- -l test
-l '' -- 'test'
我使用this example 作为基础,但在我的测试中,即使这个脚本也不能按预期工作(将 arga 值设置为某个值总是会产生默认值)。
操作系统:Linux,getopt -V=getopt 来自 util-linux 2.27
任何帮助表示赞赏:)
【问题讨论】:
-
IIRC getopts 仅适用于短选项,不适用于长选项。该教程中的代码正在执行自己的解析以迭代选项。在 SO(以及网络的其余部分)上几乎肯定有很多关于此的问题/答案/示例。