我是靠谱客的博主 炙热大神,这篇文章主要介绍Linux与Shell学习--shell系列8--流程控制1(if判断),现在分享给大家,希望可以做个参考。

这次来学习shell的流程控制语法,在shell中有多种控制语法,首先来看最常用的if判断语法。

目录

1、if单分支判断

(1)if判断为true

(2)if判断为flase

2、if双分支判断

(1)if条件为true时,走if条件下代码模块1

(2)if条件为false时,走else下代码模块2

3、多条件分支判断(1)if-elif(不带else的情况)

(1)if和elif的判断条件都为true

(2)if判断为flase,后面的elif判断为true

(3)if和elif的条件都为false

4、多条件分支判断(2)if-elif-else

(1)if和elif判断条件都为false,走else分支


1、if单分支判断

 先说下shell中if单分值的基本语法

复制代码
1
2
3
4
if 判断条件 then 子代码模块 fi

 if单分支总结下,如果if判断为true,就走到then下的子代码模块,直接子代码模块的内容,如果if判断条件为false,就不执行then下的子代码模块,直接结束了。

(1)if判断为true

复制代码
1
2
3
4
if (( 8>5 )) #判断8是不是大于5 then #如果8>5成立则继续向下走 echo "33" #子代码模块 fi #结束语法格式

代码截图:

输出结果:

 

(2)if判断为flase

复制代码
1
2
3
4
if (( 8<5 )) #判断8是不是小于5 then #如果8<5成立则继续向下走 echo "33" #因为8<5不成立,所以没有走到子代码模块 fi #结束语法格式

 代码截图:

 输出结果:输出结果为空

2、if双分支判断

先说下双分支判断的基本语法

复制代码
1
2
3
4
5
6
if 判断条件 then 代码模块1 else 代码模块2 fi

if多分支相比较单分支来说,如果判断条件不成立,会去执行代码模块2的内容,整体流程是,先判断if条件是true还是false,如果是true就执行代码模块1的内容,如果是false就执行代码模块2的内容。
 

(1)if条件为true时,走if条件下代码模块1

复制代码
1
2
3
4
5
6
if (( 8>5 )) #判断条件为8>5是否为true then #判断8>5为true echo "8>5成立" #走代码模块1,输出8>5成立 else #因为if判断为true,所以不走else代码模块了 echo "8>5不成立" #不会走到该代码模块 fi #结束语法

代码截图:

输出结果:  8>5成立

(2)if条件为false时,走else下代码模块2

复制代码
1
2
3
4
5
6
if (( 8<5 )) #判断条件为8<5是否为true then #判断8>5为false echo "8<5成立" #因为判断结果为false,所以不会走到该代码模块中 else #因为if判断为false,所以走到了else代码模块了 echo "8<5不成立" #执行代码模块2,输出结果为:8<5不成立 fi #结束语法

代码截图:

执行结果:8<5不成立 

3、多条件分支判断(1)if-elif(不带else的情况)

多条件分支1 if-elif 的基本语法:

复制代码
1
2
3
4
5
6
7
8
9
10
11
if 判断条件1      #第一个判断条件 then #如果成立走到子代码模块1中     子代码模块1 elif 判断条件2     #第二个判断条件 then #如果第二个判断条件没成立,走到子代码模块2中     子代码模块2 elif 判断条件3     #第三个判断条件 then    #如果第三个判断条件没成立,走到子代码模块3中     子代码模块3 fi

整理流程是,先判断if的第一个判断条件,如果判断结果为true执行子代码模块1,然后不往后执行,如果判断结果为false,去判断第二个判断条件,如果判断结果为true,执行代码模块2,然后不往后执行,如果判断条件为false,则继续往后执行,就是从上到下,按顺序进行条件判断,如果有true就执行对应的代码模块,然后结束,如果为false就一直往后执行,直到最后,如果都不为true则返回为空,所有代码模块都不执行。

(1)if和elif的判断条件都为true

复制代码
1
2
3
4
5
6
7
if (( 8>5 )) #判断8>5是否成立 then #判断结果为true,走到代码模块1 echo "8>5成立" #输出结果为8>5成立 elif (( 8<10 )) #因为上面有一个条件成立了,所有不会进行后续的代码判断了 then echo "8<10成立" fi

代码截图:

打印结果:  8>5成立

(2)if判断为flase,后面的elif判断为true

复制代码
1
2
3
4
5
6
7
8
9
10
11
if (( 8<5 )) #判断8<5是否为false then #判断结果为false echo "8<5不成立" #不执行代码模块1的内容,继续下一个判断条件进行判断 elif (( 8<10 )) #判断8<10结果为true then echo "8<10成立" #执行代码模块2的内容,打印8<10成立 elif (( 9<10 )) #由于上面的判断条件成立了,所以不继续往后判断了。 then echo "8<10成立" fi

代码截图:

执行结果: 

(3)if和elif的条件都为false

复制代码
1
2
3
4
5
6
7
8
9
10
11
if (( 8<5 )) #判断8<5判断结果为flase then #所以不走该子代码模块 echo "8<5不成立" elif (( 8<6 )) #继续判断elif的判断结果为flase then #不执行该子代码模块 echo "8<6不成立" elif (( 9<7 )) #继续判断elif的判断结果为flase then #不执行该子代码模块 echo "9<7不成立" fi #都不满足所以返回为空

代码截图:

执行结果: 

4、多条件分支判断(2)if-elif-else

这时候就可以加上else出来,如果if和elif判断条件都为false,就执行else的子代码模块

多条件分支2 if-elif-else 的基本语法:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
if 判断条件1      #第一个判断条件 then #如果成立走到子代码模块1中     子代码模块1 elif 判断条件2     #第二个判断条件 then #如果第二个判断条件没成立,走到子代码模块2中     子代码模块2 elif 判断条件3     #第三个判断条件 then    #如果第三个判断条件没成立,走到子代码模块3中     子代码模块3 else 子代码模块4 #上面判断条件都不成立,走到else分支,执行子代码模块4 fi

(1)if和elif判断条件都为false,走else分支

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
if (( 8<5 )) #判断8<5判断结果为flase then #所以不走该子代码模块 echo "8<5不成立" elif (( 8<6 )) #继续判断elif的判断结果为flase then #不执行该子代码模块 echo "8<6不成立" elif (( 9<7 )) #继续判断elif的判断结果为flase then #不执行该子代码模块 echo "9<7不成立" else #上面都不满足走到else分支 echo "都不成立走else分支" #执行else分支的子代码模块,打印都不成立走else分支 fi #结束语法

代码截图:

执行结果: 都不成立走else分支

总结下就是:如果只有一个需要判断的,看情况使用if就好,如果需要有多条判断,然后这几条还都是有需要满足条件的,就可以使用if--elif,再每行加上需要判断的条件,如果想要的是,这几个判断结果都不满足后,输出一个其他的,就可以用 if - elif -else了

最后

以上就是炙热大神最近收集整理的关于Linux与Shell学习--shell系列8--流程控制1(if判断)的全部内容,更多相关Linux与Shell学习--shell系列8--流程控制1(if判断)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(113)

评论列表共有 0 条评论

立即
投稿
返回
顶部