Linux之流程判断

流程控制

语法格式

if 条件
then
      执行动作
else
      执行动作
fi

案例

[root@SR ~]# vim if_test.sh
#!/bin/bash
if ls /root &> /dev/null!

then
        echo "hello world"
else
        echo "error"
fi

test测试命令

作用

用于检测某个条件是否成立 可以进行数值 字符 文件三个方面的测试

数值比较

-eq

等于为真

[root@SR ~]# [ 2 -eq 2 ] && echo "等于" || echo "不等于"

-ne

不等于为真

[root@SR ~]# [ 2 -ne 1 ] || echo "等于" && echo "不等于"

-gt

大于为真

[root@SR ~]# [ 2 -gt 1 ] && echo "大于" || echo "不大于"

-lt

小于为真

[root@SR ~]# [ 1 -lt 2 ] && echo "小于" || echo "大于"

-ge

大于等于为真

[root@SR ~]# [ 2 -ge 1 ] && echo "大于" || echo "不大于"

-le

小于等于为真

[root@SR ~]# [ 2 -le 3 ] && echo "小于" || echo "不大于"

字符串比较

==

[root@SR ~]# vim test.sh
#!/bin/bash
read -p "请输入用户名>>:" username

if [ $username == "root" ]

then
        echo "超级管理员"
else
        echo "普通用户"
fi

-z

[root@SR ~]# vim test.sh
#!/bin/bash
x=""

if [ $x==0 ]
then
        echo "为真"
else
        echo "为假"
fi

字符串比较

字符串比较根据ascii表进行比较

[root@SR ~]# vim test1.sh
#!/bin/bash
var1=test
var2=Test
if [ $var1 > $var2 ]
then
      echo "$var1 > $var2"
else
      echo "$var1 < $var2"
fi

文件比较

-e

[root@SR ~]# [ -e /etc/passwd ] && echo "普通文件" || "不是文件"

-f

[root@SR ~]# vim cleanlog.sh
#!/bin/bash
if [ $USER != "root" ]
then
        echo "权限不足"
        exit 10
fi

if [ ! -f /var/log/messages ]
then
        echo "文件不存在"
        exit 20
fi

tail -1000 /var/log/messages > /root/temp.logs
mv  /root/temp.logs /var/log/messages
原文地址:https://www.cnblogs.com/SR-Program/p/12970526.html