如何在鱼中使用可选标志

how to use optional flag in fish

我正在构建一个 CLI 任务实用程序(廉价版的 taskwarrior)。 我想添加一些可选标志,例如 -n

else if [ $cmd = 'delete' ]
argparse 'n/index'=? -- $argv
sed -i "$_flag_index d" ~/.tasks/data/Tdo.csv

但这会出错

~/.tasks/run.sh (line 14): No matches for wildcard “'n/index'=?”. See help expand. argparse 'n/index'=? -- $argv

我无法理解可选标志的正确用法,而且我找不到足够的资源,fish shell 文档对于 [=22= 中的新手来说是不够的] 缺少示例的脚本。

如何接受可选参数n/index,并在参数已给出的情况下进一步执行一些代码,否则执行其他代码,是否可以在可选参数上添加整数约束?

help expand像鱼一样告诉你吗?

未加引号的 ? 被作为通配符处理。使用 'n/index=?'

$ set argv --index=10

$ argparse 'n/index'=? -- $argv
fish: No matches for wildcard ''n/index'=?'. See `help expand`.
argparse --ignore-unknown 'n/index'=? -- $argv
                          ^

# quote the whole thing
#          v         v
$ argparse 'n/index=?' -- $argv

$ set -S _flag_index
$_flag_index: set in local scope, unexported, with 1 elements
$_flag_index[1]: |10|