【发布时间】:2020-07-29 01:28:38
【问题描述】:
我在 OS X 10.14.5 上运行 fish 3.1.0。
我是钓鱼和 argparse 的新手。两个我都喜欢。
以下简单测试代码:
#!/usr/local/bin/fish
function afoo
set -l options (fish_opt -s h -l help)
set options $options (fish_opt -s m -l max --required-val)
set options $options (fish_opt -s n -l nnn --optional-val)
argparse $options -- $argv
echo "max" $_flag_max
echo "nnn" $_flag_nnn
end
应该创建两个开关 m 和 n。 m 必须取值,而 n 可以取值。
这是在终端的 CLI 中测试该基本功能时的简单屏幕截图:
[/usr/local/bin/fish 3.1.0] ~ afoo -m foo -n baz
max foo
nnn
[/usr/local/bin/fish 3.1.0] ~ afoo -mfoo -nbaz
max foo
nnn baz
[/usr/local/bin/fish 3.1.0] ~
为什么 argparse 不 解析 -n 开关和它的参数之间的空间,但它确实 解析 -m 开关和它的参数之间的空间?
这让我发疯了。我已经阅读了十几遍文档。我做错了什么?
附:开关的顺序无关紧要。
【问题讨论】:
标签: shell parsing arguments fish