我正在开发名为quick(see here)的鱼壳函数,我想添加一些开关。
例如quick -l
列出所有pathLabels。
Fish documentation似乎没有提供此类信息。
我的问题是,
我在那里遇到过几个相关的信息,如" How do I parse command line arguments in bash?"但是还没有找到针对这些问题的明确的鱼类特定答案。如有任何帮助,我们将不胜感激!
注意:以> functions alias
为例,似乎在switch语句中只使用了$ argv。
答案 0 :(得分:1)
您可以使用getopt
。它非常冗长。以下是仅查找-h
或--help
function foobar
set -l usage "usage: foobar [-h|--help] subcommand [args...]
... more help text ...
"
if test (count $argv) -eq 0
echo $usage
return 2
end
# option handling, let's use getopt(1), and assume "new" getopt (-T)
set -l tmp (getopt -o h --long help -- $argv)
or begin
echo $usage
return 2
end
set -l opts
eval set opts $tmp
for opt in $opts
switch $opt
case -h --help
echo $usage
return 0
case --
break
case '-*'
echo "unknown option: $opt"
echo $usage
return 1
end
end
switch $argv[1]
case subcommand_a
... etc