流程控制
语法格式
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