我对单个IF子句声明中的Multiple条件感到困惑。
如果我使用以下语法,则会抛出错误。
if [[ [ "$a" == "" && "$b" != "" ] && [ "$b" == "" ] ]];
then echo 1;
else echo 2;
fi
-bash:[:缺少`]'
但是,如果我将[
替换为(
仅在条件内,则其工作如下
if [[ ( "$a" == "" && "$b" != "" ) && ( "$b" == "" ) ]];
任何人都可以说为什么会这么混乱,为什么会这样设计呢?我对使用不同类型的大括号感到困惑[(。何时使用[以及何时不使用](。