我似乎无法将多个 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
。如果没有任何特殊字符(如空格(,引号不会更改任何内容。