如何在鱼中使用可选标志
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|
我正在构建一个 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|