详解Shell中的if分支(单个条件、多个条件)
大家好,我是大白,今天我来详细讲解一下Shell中if条件分支的用法,主要有单个条件、多个条件两种情况,尤其需要注意的是,多个条件的情况下,我们只看最后一个条件是否成立。
1.if语句的语法
Shell中if语句的语法如下:
if commands; thencommands
[elif commands; thencommands]
[else commands]
fi
来个具体的例子:
a=8
if ["$a" -eq 0]; thenecho "a equals 0"
elif ["$a" -lt 0]; thenecho "a is less than 0"
elseecho "a is greater then 0"
fi
执行之后,显示内容如下
a is greater then 0
if后面的条件可以是单个条件,也可以是多个条件,下面来一一分析。
2.单个命令
if只有单个条件的时候,如果条件为真,那么执行then后面的命令;条件为假,则跳过then后面的命令。
条件为真,执行then后后面的命令:
if true; then echo "hello da bai"
fi
执行成功,显示内容:
hello da bai
条件为假,那么不执行then后面的命令
if false; then echo "hello da bai"
fi
不会执行then后面的内容,不会显示任何内容:
3. 多个条件
if 后面有多个条件的时候,只看最后一个条件是否成立,如果最后一个条件成立,那个执行then后面的命令;如果最后一个条件不成立,那么不执行then后面的命令。
注意,只看最后一个条件是否成立哦,不是要求所有条件都成立,只要最后一个条件成立就行。
看例子:
第一个条件不成立,第二个条件成立,也就是最后一个条件成立,所以可以执行then后面的命令。
if false; true; then echo "hello da bai"
fi
执行成功,显示内容:
hello da bai
再看一个例子:
第一个条件成立,第二个条件不成立,也就是最后一个条件不成立,不能执行then后面的命令。
if true; false; thenecho "hello da bai"
fi
没有显示任何内容。
3.总结
if后面单个条件,如果条件成立,那么可以执行then后面的命令,否则,不能执行then后面的命令。
if后面多个条件,核心就是只看最后一个条件的是否成立,如果成立,那么可以执行then后面的命令,否则,不能执行then后面的命令。
其实,为了便于理解,if 后面只有一个条件的情况可以看做是if后面有多个条件的一种特殊形式。
if后面只有唯一的一个条件,这个条件就是最后一个条件,这唯一的条件成立,也相当于最后一个条件成立,这唯一的条件不成立,也就相当于最后一个条件不成立。
