2-3 嵌套if

        这节课我们来讲一下嵌套if,我们在上一节中给大奖讲了if-then-else,那种对应的情形就比较单一,因为我们只能对if这种条件作判断,只能判断一个特定的条件,如果符合的话就执行then中的语句;否则的话执行else中的语句。那假如我现在有多种情形需要判断呢?比如说我现在需要对情形1、情形2、情形3做判断,除此之外呢,都不符合情形1、情形2、情形3才会执行else。那么应该怎么写呢?其实我们的if可以写多个。

语法

if command | condition
then
    commands
elif command | condition
then
    commands
else
    commands
fi

        如果有更多的条件需要判断,可以写更多的elif command | condition。这是它的语法结构。

        我们来演示一下。

        通过执行:

ss -tnlp

        可以看到有个shd,我们就用它来做演示。

2-3 嵌套if

vim nested-if.sh

#!/bin/bash
#
if ps -ef | grep mysqld | grep -v grep &> /dev/null
then
        echo "MySQL is RUNNING"
elif ps -ef | grep sshd | grep -v grep &> /dev/null
then
        echo "sshd is RUNNING"
else
        echo "MySQL and sshd is all STOPPED"
fi

2-3 嵌套if

         如果MySQL和sshd的服务都不存在的话,就会执行else里的指令。输出:MySQL and sshd is all STOPPED。这样的判断场景在我们写shell脚本中是很常用的,其实复杂的脚本无非就是由很多这样的小点组织起来的。所以我们一定要理解这个知识。

        另外,我们还可以将if和then放到一行,但是需要注意,这时then和它前面的command | condition之间要有“;”进行分割。

#!/bin/bash
#
if ps -ef | grep mysqld | grep -v grep &> /dev/null;then
        echo "MySQL is RUNNING"
elif ps -ef | grep sshd | grep -v grep &> /dev/null;then
        echo "sshd is RUNNING"
else
        echo "MySQL and sshd is all STOPPED"
fi

         这样写看起来逻辑更加清晰一些。

        好了,这小节就说到这里。如果各位有补充请留言,我验证之后完善文章。谢谢!

上一篇:Linux-20211008


下一篇:Linux连接慢的原因