If statement 将if条件与鱼壳中的contains函数相结合

If statement 将if条件与鱼壳中的contains函数相结合,if-statement,fish,If Statement,Fish,我似乎无法将多个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 co

我似乎无法将多个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
被解释为
包含
-帮助的缩写形式,因此它打印
包含
帮助。使用
--
发出选项结束的信号:

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

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

-h
解释为
包含
-help
的一个选项,因此它会打印
包含
帮助。使用
--
发出选项结束的信号:

if contains h -- $argv; or contains -- -h $argv
请注意,这里的引号仅仅是安慰剂-
“h”
完全等同于
h
。如果没有任何特殊字符(如空格),则引号不会改变任何内容