我想创建一个带有可选参数-a
的程序,该参数可以有一个可选的值'filename'。为此,我想使用getopt
,但我不能让-a
使用可选参数。
如果我通过"a"
我可以./my_prog -a
如果我通过"a:"
我可以./my_prog -a filename
//这里的filenamen不是可选的
如果我通过"a::"
我可以./my_prog -a[filename]
但有没有办法获得结果-a [filename]
//文件名是可选的?
答案 0 :(得分:3)
我不相信你所要求的是可能的。
这可能是一件好事:如果调用./my_prog -a -b
,那么你的程序应该怎么办?其中-b
是它应该采取的另一种选择?是否应该使用-b
作为-a
后面的可选文件名,或者假设没有给出文件名并将其视为一个选项,这一点并不明显。
因此,我建议您重新考虑您所要求的行为是否真的是一个好主意。