bash中的条件判断

条件测试类型

    1、整数测试

    2、字符测试

    3、文件测试

条件测试表达式

    [ expression(表达式) ] 中括号和表达式之间必须有空格

    -eq 测试是否相等,相等为真,不相等为假

    shell编程条件判断

    -ne 不相等为真,相等为假

    -gt 大于为真

    -lt 小于为真

    -ge 大于等于为真

    -le 小于等于为真

命令间的逻辑关系

    && 与,第一个条件为真,则要验证第二个条件是否为真;第一个条件为假,不验证第二个条件,就为假

    || 或

    ! 非

变量的命名规则

    1、只能包含数字,字母,下划线,不能以数字开头

    2、不应该与系统已有的环境变量重名

    3、名字尽量有意义


脚本练习(用逻辑关系)

1、如果用户存在,则输出user exists

    id user1 &> /dev/null  && echo "user1 exists"

2、如果用户不存在,就添加用户

    ! id user1 &> /dev/null  && adduser user1 

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

    id user7 &> /dev/null && echo "user7 exists" || adduser user7

    shell编程条件判断

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

    ! id user1 &> /dev/null  && adduser user1 || echo "user1 exists"

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

    ! id user8 &> /dev/null && adduser user8 && echo "user8" | passwd --stdin user8 &> /dev/null ||echo "user8 exists"

    shell编程条件判断

6、给定一个用户,如果UID为零,就显示管理员,否则显示普通用户

#!/bin/sh

username=user1

userid=`id -u $username`

[ $userid -eq 0 ] && echo "administrator" || echo "common user"

shell编程条件判断


条件判断,if语句控制结构


if 判断条件; then

    表达式1

    表达式2

    表达式3

    ……

fi

if 判断条件

then

    表达式1

    表达式2

    表达式3

    ……

fi


if 判断条件; then

    表达式1

    表达式2

    表达式3

    ……

else 

    表达式1

    表达式2

    表达式3

    ……

fi

注意事项: fi单独一行;then可以单独一行; then在判断条件后,用分号隔开


使用if条件判断语句来实现 

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

if ! id user9 &> /dev/null ; then
            adduser user9
            echo "user9" | passwd --stdin user9 &> /dev/null
else
            echo "user9 exists"
fi

shell编程条件判断


2、给定一个用户,如果UID为零,就显示管理员,否则显示普通用户

username=root
if [ `id -u $username` -eq 0 ] ; then
        echo "administrator"
else
        echo "common user"
fi

shell编程条件判断