2012-10-05 23 views
1

我有一个tool这需要input,使outputC命令行解析器处理意见

$ tool input > output 

我想补充一个选项,这是一个很长的字符串 - 也就是说,一个“注释”选项。这个注释文本是一个参数的选项,是包含在向前刻度线的句子:

$ tool --comment='I am commenting on the use of comments' input > output_plus_comment 

这与通常--foo=bar键 - 值对,其中foo是选项名称和bar不同的是单字值(例如,true,red,...)。

C是否有一个很好的命令行解析器库来处理这种特殊情况?

+1

是的,'getopt'。它应该按照您提供的命令行进行操作。 –

+0

可能你有任何这样做的例子?对于这种情况,文档看起来有些粗俗:http://www.gnu.org/software/libc/manual/html_node/Using-Getopt.html –

+0

网络上有数百万个getopt示例。有什么问题吗? (我假设你已经为double-dash选项发现了'getopt_long'。) –

回答

2

将命令行标记为程序的参数是shell的责任,而不是你的。所以你没有什么可做的。

只需在包含空格的字符串周围加上引号,或者在命令行上用反斜杠转义空格,并且您的--foo值可以包含尽可能多的空格。