Bash 创建自定义Fish开关
我正在处理一个名为quick()的鱼壳函数,我想向它添加一些开关 例如Bash 创建自定义Fish开关,bash,function,shell,fish,Bash,Function,Shell,Fish,我正在处理一个名为quick()的鱼壳函数,我想向它添加一些开关 例如quick-l列出所有路径标签 似乎没有提供这样的信息 我的问题是, 使用fish中的开关增强函数功能的最佳方法是什么 是否可以使用新开关扩展现有命令 这是否与bash/shell的类似主题有关 我在那里遇到了一些相关的信息,比如“”,但还没有找到一个关于这些问题的明确而具体的答案。如果您有任何帮助,我们将不胜感激 注意:以检查函数别名为例,switch语句中似乎只使用了$argv。您可以使用。很冗长。下面是一个只查找-h
quick-l
列出所有路径标签
似乎没有提供这样的信息
我的问题是,
- 使用fish中的开关增强函数功能的最佳方法是什么
- 是否可以使用新开关扩展现有命令李>
- 这是否与bash/shell的类似主题有关
-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
更可能是@AndyRay的一个副本,我遇到了这个问题,我想知道是否有比访问$argv和测试字符串相等性更好的交换机方法。开关的完成方式也有点不同,不是吗?请看: