我正在尝试构建一个接受一组选项的文档。
Naval Fate.
Usage:
naval_fate.py ship
[-b <b_command>]
[-e <e_command>]
可运行的示例:http://try.docopt.org/?doc=naval fate. USAGE:: NAVAL_FALE.PY SHIPS SHIPS;%5D%0D%0a %5b-e %3CE_Command%3E%5D&argv = ship -e -e c
如果我使用它,它可以正常工作:
ship -b barg -e earg
输出为:
{
"-b": true,
"-e": true,
"<b_command>": "barg",
"<e_command>": "earg",
"ship": true
}
但是,如果使用此问题,它仍然给出相应参数相同的值:
ship -e earg -b barg
输出:
{
"-b": true,
"-e": true,
"<b_command>": "earg",
"<e_command>": "barg",
"ship": true
}
请注意,我将earg传递到-e,但已分配给输出中的b_command。
我看到了Golang的docopt-go
软件包的行为。我的用法字符串错误吗?如果是这样,我应该如何构架DocOpt用法字符串字符串,以使其分配正确的值正确参数并尊重指定的参数?
naval_fate.py ship [-b <b_command>] [-e <e_command>]
您写的文档的解释如下:
- 子命令
ship
, - 随后按任何顺序零或以下零:
- 布尔国旗
-b
, - 位置参数
<b_command>
, - 布尔国旗
-e
, - 位置参数
<e_command>
。
- 布尔国旗
因此,以下所有内容都将被视为法律输入命令:
naval_fate.py ship -e
naval_fate.py ship BB -e
naval_fate.py ship -eb
naval_fate.py ship BB EE
表达诸如-b <b_command>
和-e <e_command>
之类的标志的正确方法是通过称为Options
的部分。
Naval Fate.
Usage:
naval_fate.py ship [options]
Options:
-b <b_command> Description of -b
-e <e_command> Description of -e