1、单分支if条件语句
格式:
if [ 条件判断式 ]; then
程序
fi
或者
if [ 条件判断式 ]
then
程序
fi
单分支注意的几个点:
示例1:统计磁盘根区使用率
#!/bin/bash
#统计磁盘根区使用率
rate=$( df -h |grep '/dev/sda5'| awk '{print $5}'|cut -d "%" -f 1 )
if [ $rate -ge 80 ]
then
echo "warning!!! dev/sd5 disk is too full"
fi
2、双分支if条件语句
格式:
if[ 条件判断式 ]
then
条件成立时,执行语句
else
条件不成立时,执行语句
fi
示例2:备份/etc文件
#!/bin/bash
date=$(date +%y%m%d)
size=$(du -sh /etc )
if [ -d /tmp/etcback ]
then
echo "date is : $date" > /tmp/etcback/etc.txt
echo "size is : $size" >> /tmp/etcback/etc.txt
cd /tmp/etcback
tar -zcf etc_$date.tar.gz /etc etc.txt &>/dev/null
rm -rf /tmp/etcback/etc.txt
else
mkdir /tmp/etcback
echo "date is : $date" > /tmp/etcback/etc.txt
echo "size is : $size" >> /tmp/etcback/etc.txt
cd /tmp/etcback
tar -zcf etc_$date.tar.gz /etc etc.txt &>/dev/null
rm -rf /tmp/etcback/etc.txt
fi
示例2:判断Apache服务是否正常开启
#!/bin/bash
#判断apache 服务是否启动
# ps aux | grep http
# netstat -tlun
# 以上两个命令都有局限,在apache死机的情况下也能搜寻到,所以使用nmap扫描命令
port=$(nmap -sT 127.0.0.1|grep tcp|grep http|awk '{print $2}')
if [ $port == 'open' ]
then
echo "apache is open"
else
echo "apache is not open"
fi
3、多分支if 条件语句
格式:
if [ 条件判断语句1 ]
then
当条件判断语句1成立时执行的语句
elif [ 条件判断语句2 ]
then
当条件判断语句2成立时执行的语句
...省略更多条件判断
else
当所有条件都不成立时,执行该语句
fi