我想写一个应用程序my_app,它从cmdline中获取命名选项列表和文件名列表,例如
% my_app --arg_1 arg_1_value filename_1 filename_2
文件名是最后一个参数,与任何命名选项都不关联。
从我工作过的cmdline解析器中,例如Golang中的flag,解析器似乎只会提取已配置的args,并且我需要通过遍历原始argv[]列表来手动识别文件名列表。
我想问一下,是否有解析器(或者我可能忽略了它们的选项(也可以提取这些文件名,或者它们只返回未处理的参数,因此,我可以假设这些就是文件名。
Golangflag
模块使尾部参数可用作切片flag.Args
,这是os.Args
的尾部。
这是命令行参数解析器的一种非常典型的工作方式,尽管细节会因语言而异。标准的C库参数解析器,fir示例,提供全局optind
,它是第一个非标志参数的argv
中的索引。