3

引用自getopt() Linux 手册页

如果optstring的第一个字符是hyphen( -),则每个非选项 argv 元素都被视为具有字符代码 1 的选项的参数处理。(这被编写为期望选项和其他 argv 元素的程序使用以任何顺序,并且关心两者的顺序。)特殊参数double hyphens( --) 强制结束选项扫描,而不管扫描模式如何。

引用自Java GetOpt 类的手册页

...第二个是允许在任何地方使用选项,但要按照它们在命令行中出现的顺序返回所有元素。当遇到非选项元素时,返回整数 1,并且非选项元素的值存储在 optarg 中,如果它是该选项的参数。例如,“-a foo -d”,首先返回 'a',然后返回 1(将 optarg 设置为“foo”),然后返回 'd',然后返回 -1。当启用“按顺序返回”功能时,阻止 getopt() 扫描所有命令行元素的唯一方法是单独使用特殊的“--”字符串,如上所述。一个例子是“-a foo -b -- bar”,它将返回“a”,然后是整数 1,其中 optarg 设置为“foo”,然后是“b”,然后是 -1。optind 然后将指向“bar”作为第一个非选项 argv 元素。

是的,我理解上面所说的内容,但我仍然无法想象什么样的应用程序会使用这种行为。

有人可以提供一个命令行语法示例,该示例可能由实现“按顺序返回”行为的应用程序使用吗?

4

1 回答 1

5

find是混合选项和非选项参数的命令示例,并且关心顺序。

于 2013-01-19T05:42:02.620 回答