1

我怀疑我们是否有两个选项 -a 和 -c 并且选项 -a 需要有一个值,而 -c 没有值

现在如果我给 ->testopt -a -c [testopt 是程序]

然后我的程序将 -c 作为 -a 的值。有没有一种方法可以确保具有值的选项没有其他选项作为其值?

问题是系统接受 - 一个关键字的值作为我需要阻止的另一个关键字。例如 - testopt -a -c。在这种情况下,-a 有一个强制参数(值),-c 没有值。但我的 getopt 将其解释为“-c”是“-a”的值,我如何使用得到选择。

4

1 回答 1

1

您将-c作为-a选项的值获得,因为您指定-a了一个值。如果你用相反的方式调用你的程序

$ testopt -c -a

然后getopt将返回一个'?'指示缺少选项值(根据getopt手册页),并且将在控制台上打印错误。

不幸的是,没有办法告诉getopt参数具有可选值,那么您必须实现自己的选项解析器。

于 2012-09-27T09:24:15.027 回答