我正在为我的应用程序编写一个CLI,我想为用户提供选项和参数的bash完成。
API是以下myapp [-f file] argument
,我想为选项-f
和argument
提供完成。
我想知道如何区分以下两种情况:
myapp -f some_path<tab><tab>
myapp -f some_file <tab><tab>
在第一种情况下,用户仍在键入选项,他/她希望看到文件选项的候选者。在第二个他/她完成打字,并希望看到争论的候选人。
问题是在两种情况下os.Args
的值都是相同的,我无法区分这两种情况。有没有办法访问调用字符串?
一种解决方案是在选项和参数之间使用--
之类的分隔符,但我想知道在我走这条路之前是否有更清晰的解决方案。