Shell elif条件判断

Shell elif条件判断教程

Shell 中,关键字 if 是用于测试某个条件语句是否满足一定的条件,如果满足特定的条件,则会执行 if 对应的 then 后缩进的代码块,否则就忽略该代码块继续执行后续的代码。

elif 关键字用于在 if 语句条件不满足的情况下,继续执行 elif 里面的逻辑判断,如果满足条件则执行 elif 缩进里面的逻辑。

elif 语句只能写在 if 语句的同级代码的后面,且 elif 语句可以写任意多个。

Shell elif语句详解

语法

if condition1 then statement1 elif condition2 then statement2 elif condition3 then statement3 fi

参数

参数 描述
if if 条件判断使用的关键字
condition1 条件判断语句,必须返回真或者假
elif elif 条件判断使用的关键字
condition2 条件判断语句,必须返回真或者假,如果 condition1 不满足,才会判断 condition2
condition3 条件判断语句,必须返回真或者假,如果 condition1 和 condition2 都不满足,才会判断 condition3

说明

Shell 中的 elif 语句后面的条件判断表达式只有在 if 条件不满足的情况下,才会测试 elif 的条件。

这里,如果 if 的条件 condition1 为假,此时会继续测试 elif 的条件判断 condition2,如果此时 condition2 为真,那么下面的 condition3 就不会再继续判断。

否则,继续判断 condition3 的条件,如果满足,则执行,否则,什么都不执行。

案例

if语句条件为真

如果 if 语句条件为真,则不会执行 elif 相对应的代码

#!/bin/bash a=10 b=5 if (( $a > 8 )) then echo "a > 8" elif (( $a > $b )) then echo "a > b" fi echo "Over"

程序运行后,控制台输出如下:

03_Shell elif语句.png

首先,我们定义了两个 变量 a 和 b,并分别赋值为 10 和 5。接着,我们使用 if 语句判断 a > 8 的条件,如果条件满足,则执行 then 缩进里面的输出语句。

同时,我们还使用 elif 语句,判断 a > b 的条件时否满足,如果 if 语句不满足,elif 语句满足,则才会执行 elif 语句里面的逻辑。

最后,我们的程序输出了 "a > 8""Over" ,因为在第一个判断时 a > 8 的条件是成立的,所以会执行 if 缩进里面的输出语句,此时,虽然 elif 语句里面的逻辑也是成立的,但因为 if 语句已经成立了,if 语句与 elif 语句是互斥的执行,所以 elif 里面的语句未能执行。最后一个输出语句不管条件满足不满足则都会执行。

if语句条件为假

如果 if 语句条件为假,elif 为真,此时会执行 elif 相对应的代码

#!/bin/bash a=10 b=5 if (( $a > 20 )) then echo "a > 20" elif (( $a > $b )) then echo "a > b" fi echo "Over"

程序运行后,控制台输出如下:

04_Shell elif语句.png

首先,我们定义了两个变量 a 和 b,并分别赋值为 10 和 5。接着,我们使用 if 语句判断 a > 20 的条件,如果条件满足,则执行 then 缩进里面的输出语句。

同时,我们还使用 elif 语句,判断 a > b 的条件时否满足,如果 if 语句不满足,elif 语句满足,则才会执行 elif 语句里面的逻辑。

最后,我们的程序输出了 "a > b""Over" ,因为在第一个判断时 a > 20 的条件是不成立的,所以不会执行 if 大括号里面的输出语句,此时,elif 语句里面的逻辑是成立的,而且前面的 if 语句不成立了,所以 elif 里面的语句能成功执行。最后一个输出语句不管条件满足不满足则都会执行。

多个elif语句

多个 elif 语句,会被依次判断,直到满足的第一个执行

#!/bin/bash a=10 b=5 if (( $a > 20 )) then echo "a > 20" elif (( $a > 15 )) then echo "a > 15" elif (( $a > 10 )) then echo "a > 10" elif (( $a > b )) then echo "a > b" fi echo "Over"

程序运行后,控制台输出如下:

05_Shell elif语句.png

首先,我们定义了两个变量 a 和 b,并分别赋值为 10 和 5。接着,我们使用 if 语句判断 a > 20 的条件,如果条件满足,则执行缩进里面的输出语句。

同时,我们还使用 elif 语句,判断 a > 15 的条件时否满足,判断 a > 10 的条件是否满足,判断 a > b 的条件是否满足,如果满足任意一个,则会执行相对应的代码。

最后,我们的程序输出了 "a > b""Over" ,因为在第一个判断时 a > 20 的条件是不成立的,所以不会执行 if 缩进里面的输出语句,此时,最后一个 elif 语句里面的逻辑是成立的,而前面所有的 elif 语句都不成立,所以最后一个 elif 里面的语句被执行。最后一个输出语句不管条件满足不满足则都会执行。

Shell elif条件判断总结

elif 关键字用于在 if 语句条件不满足的情况下,继续执行 elif 里面的逻辑判断,如果满足条件则执行 elif 缩进里面的逻辑。elif 语句只能写在 if 语句的同级代码的后面,且 elif 语句可以写任意多个。