Linux初级运维(六)——bash脚本编程(条件判断)

 一、bash中如何实现条件判断

    1、条件测试类型

            整数测试

            字符测试

            文件测试


    2、条件测试的表达式

            [expression]

            [[expression]]

            test expression


    3、整数比较:

            -eq:测试两个整数是否相等:比如 $A -eq $B

        image.png

            -ne :测试两个整数是否不等,不等,为真,相等为假

            -gt :测试一个数是否大于另一个数:大于为真,否则为假

            -lt:测试一个数是否小于另一个数:小于为真,否则为假

            -ge:大于或等于

            -le:小于或等于

二、bash 命令之间的逻辑关系
        逻辑与(&&):只要一个为假,则结果一定为假

            (当第一个条件为假时,第二个条件不用再判断,最终结果已经有;当第一个条件为真时,第二个条件必须得判断。)

        image.png

        逻辑或(||):只要一个为真,则结果一定为真

        例子:如果用户user6不存在,就添加用户user6

        两种表达方式:(1)!id user6 && useradd user6    (2)id user6 || useradd user6


    1、如果用户存在,就显示用户已存在,否则,就添加用户:

        id user1 && echo “user1 exists.” || useradd user1

         如果用户不存在,就添加,否则,显示用户已存在:

        ! id user1 && useradd user1 || echo "user1 exists."

          如果用户不存在,添加并且给密码,否则,显示其已经存在

        !id user1 && useradd user1 && echo "user1" | passwd --stdin user1 || echo "user1 exists."

    2、练习题:

        (1)、添加3个用户user1,user2,user3;但要先判断用户是否存在,不存在而后在添加

        (2)、添加完成后,显示一种添加了几个用户;当然,不能包括因为事先存在而没有添加的。    

        (3)、最后显示当前系统上共有多少个用户。

        image.png

    3、练习题

        写一个脚本,完成以下要求:

            (1)如果其UID为0,就显示为管理员;

            (2)否则,就显示其为普通用户;

        image.png

        

三、条件判断,控制结构

    1、单分支if语句

        if 判断条件;then

            statement1

            statement2

            ...

         fi

        image.png

    2、双分支的if语句

        if 判断条件;then

            statement1

            statement2

            ...

        else

            statement3

            statement4

            ....

        fi

        image.png

四、shell中进行算术运算

        (1)let 算术运算表达式

            A=3

            B=6

        let C=$A+$B

         (2)$[算术运算表达式]

            A=3

            B=6

            C=[$A+$B]

        image.png

         (3)$((算术运算表达式))

            A=3

            B=6    

            C=(($A+$B))

        (4)expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用。

            C=`expr $A + $B`

      

五、练习题

    1、写一个脚本

        判断当前系统上是否有用户的默认shell为bash;

            如果有,就显示有多少个这类用户;否则,就显示没有这类用户。

        image.png

        image.png

    2、写一个脚本

        判断当前系统上是否有用户得默认shell为bash;

            如果有,就显示其中一个的用户名;否则,就显示没有这类用户。

        image.png


猜你喜欢

转载自blog.51cto.com/5001660/2176820