简化的bash条件语句 - 大括号与括号?

时间:2016-07-01 15:43:14

标签: bash shell if-statement conditional

我在Bash中做了很多脚本,而不是使用典型的语法:

if [[ condition ]]
then 
    foo
    bar
else 
    baz
    quux
fi

我经常使用它的简化版本:

[[ condition ]] && ( foo; bar ) || ( baz; quux )

但是,看一下我工作的新公司的一些脚本,我注意到它代替了常规括号,使用大括号可以正常工作。例如:

$ false && ( echo -n "Hello "; echo "World"; ) || ( echo -n "Goodbye "; echo "World";  )
Goodbye World
$ true && ( echo -n "Hello "; echo "World"; ) || ( echo -n "Goodbye "; echo "World";  )
Hello World
$ false && { echo -n "Hello "; echo "World"; } || { echo -n "Goodbye "; echo "World";  }
Goodbye World
$ true && { echo -n "Hello "; echo "World"; } || { echo -n "Goodbye "; echo "World";  }
Hello World

所以前两个例子使用括号,这是我通常使用的。最后两个使用大括号。

所以我的问题是......差异是什么?我什么时候应该使用一个而不是另一个?

谢谢!

0 个答案:

没有答案