选项后跟getopt中的一个选项
我有一个疑问,如果我们有两个选项-a和-c和选项-a需要有一个值而没有-c的值
现在,如果我给 – > testopt -a -c [testopt是程序]
然后我的程序将-c作为-a的值。 有没有办法,我可以确保有价值的选项没有其他选项作为其值?
问题是系统接受 – 一个关键字的值作为我需要防止的另一个关键字。 例如 – testopt -a -c。 在这种情况下,-a的强制参数(值)和-c的值没有…但是我的getopt将其解释为“-c”是“-a”的值我怎么能在这个上抛出一个错误getopt的。
你得到-c
作为-a
选项的值,因为你指定-a
有一个值。 如果您使用相反的选项调用程序
$ testopt -c -a
然后getopt
将以'?'
返回 指示缺少选项值(根据getopt
手册页 ),并且将在控制台上打印错误。
不幸的是,没有办法告诉getopt
一个参数有一个可选值,那么你必须实现自己的选项解析器。