如何在fish中的if语句中对多个条件进行分组

hoi*_*jui 4 fish

照原样,下面的代码是无效的,因为括号不能这样使用。如果我们删除它们,它运行良好,并输出:

true
true
Run Code Online (Sandbox Code Playgroud)

代码:

#!/usr/bin/fish

if ( false ; and true ) ; or true
    echo "true"
else
    echo "false"
end

if false ; and ( true ; or true )
    echo "true"
else
    echo "false"
end
Run Code Online (Sandbox Code Playgroud)

如何获得括号指示的功能?

所需的输出:

true
false
Run Code Online (Sandbox Code Playgroud)

Ste*_*n M 5

您也可以使用beginend用于条件:

鱼教程

对于更复杂的条件,请使用 begin 和 end 将它们的一部分分组。

对于一个更简单的示例,您可以从 stackoverflow 中查看此答案

对于您的代码,您只需替换(withbegin ;)with ; end

#!/usr/bin/fish

if begin ; false ; and true ; end ; or true
    echo "true"
else
    echo "false"
end

if false; and begin ; true ; or true ; end
    echo "true"
else
    echo "false"
end
Run Code Online (Sandbox Code Playgroud)