将 if 条件与鱼壳中的包含功能相结合



我似乎无法将多个 if 条件与contains函数相结合,请参阅以下示例:

> function if_test
if contains "h" $argv; or contains "-h" $argv
functions if_test
return
end
end
> if_test h
# ... works fine.
> if_test -h
# ... shows documentation of contains

这很奇怪,因为以下功能按预期工作,那么为什么会有所不同呢?

> if true; and false
echo what
else
echo how
end
how
> if true; or false
echo what
else
echo how
end
what

-h被解释为contains的选项 ---help的缩写形式,因此它打印contains帮助。使用--表示选项结束:

if contains h -- $argv; or contains -- -h $argv

请注意,这里的引号只是安慰剂 -"h"完全等同于h。如果没有任何特殊字符(如空格(,引号不会更改任何内容。

最新更新