if/then结构用来判断命令列表的退出状态码是否为0(因为在UNIX惯例, 0表示"成功"), 如果成功的话, 那么就执行接下来的一个或多个命令。
有一个专有命令[ (左中括号, 特殊字符). 这个命令与test命令等价, 并且出于效率上的考虑, 这是一个内建命令. 这个命令把它的参数作为比较表达式或者作为文件测试, 并且根据比较的结果来返回一个退出状态码(0 表示真, 1表示假)
在版本2.02的Bash中, 引入了[[ ... ]]扩展测试命令, 因为这种表现形式可能对某些语言的程序员来说更容易熟悉一些. 注意[[是一个关键字, 并不是一个命令
Bash把[[ $a -lt $b ]]看作一个单独的元素, 并且返回一个退出状态码
(( ... ))和let ...结构也能够返回退出状态码, 当它们所测试的算术表达式的结果为非零的时候, 将会返回退出状态码0. 这些算术扩展结构被用来做算术比较.
if-else结构
if [ condition-true ]
then
command 1
command 2
...
else
# 可选的(如果不需要可以省去).
# 如果原始的条件判断的结果为假, 那么在这里添加默认的代码块来执行.
command 3
command 4
...
fi
if-elif-else结构
if [ condition1 ]
then
command1
command2
command3
elif [ condition2 ]
# 与else if一样
then
com