2-2 使用if-then-else语句

        书接上文,我们来看一下如何使用if-then-else语句,在上一个小节中给大家讲了if-then语句,if-then语句只是适用于某一种满足条件的前提下如何对逻辑进行处理。那对于不符合条件的呢?我们都知道在其它编程语言中是有if-else的。我们的shell中也有if-then-else语句,我们来看一下它的语法。

语法

if command | condition
then
    commands
else
    commands
fi

        我们上一节中使用的是if,后面可以跟command或condition,之后是then,then后面是commands具体执行的一些指令,如果我们需要有else,那就不要在then下面使用fi,fi是一个结尾的标记,和前面的if是一个呼应的关系。写fi相当于整个if语句结束了,所以说我们有不符合条件的情形,就要在then指令之后写一个else,else指令之后跟一些commands需要执行的指令。之后用fi标记if语句结束。那这样整个逻辑体意味着在if后面的command或condition会首先做判断,如果满足条件的话,就会执行if后面紧跟着的then里面的commands指令;否则会执行else中的commands语句。我们来演示一下。

vim if-then-else.sh

#!/bin/bash
#

if ps -ef | grep python | grep -v grep
then
        echo "PYTHON is RUNNING"
else
        echo "PYTHON is STOPPED"
fi

2-2 使用if-then-else语句

        可以看到是有python进程启动的。

        但是有时我们不想关注前面执行的ps指令的输出结果,我们指向的第一个结果。那应该怎么办呢?需要将 ps -ef | grep python | grep -v grep 这一串指令执行完的输出结果扔到垃圾桶里。虽然我们将ps的结果重定向到垃圾桶里面,但是它不会改变整个if后面的command指令的退出状态码。这时我们需要这样修改。

#!/bin/bash
#
if ps -ef | grep python | grep -v grep &> /dev/null
then
        echo "PYTHON is RUNNING"
else
        echo "PYTHON is STOPPED"
fi

2-2 使用if-then-else语句

        这就是我们在shell语句中使用if-then-else比较常用的情形。如果各位有补充请留言,我验证之后完善文章。谢谢!

上一篇:访问修饰符(public,private,protected,internal,sealed,abstract)


下一篇:书单测试