流程控制-if语句

单分支if条件语句

if [条件判断式];then
  程序
 fi
 或者
if [条件判断式]
  then
      程序
  fi
  • 举例:

判断分区使用率

#!/bin/bash
#统计根分区使用率
#handbye 2017.4.17 
rate=$(df -h | grep /dev/sda5 | awk '{print $5}' | cut -d "%" -f 1)
#判断根分区的使用率,并将使用率的数字提取出来
if [ $rate > 80 ]
    then
        echo "waring,your disk is full"
fi

双分支if条件语句

if [ 条件判断式 ]
    then
    程序
    else
    程序
fi
  • 举例:

备份/etc 目录

#!/bin/bash
#备份/etc目录
#handbye 2017.4.17
date=$(date +%y%m%d)
#将当前时间以年月日的形式赋给date变量
size=$(du -sh /etc )
#统计/etc的大小并将值赋给size变量
if [ -d /tmp/etcback ]
#判断/tmp/etcback目录是否存在
    then
        echo "Date:$date" > /tmp/etcback.log
        echo "Szie:$size" >> /tmp/etcback.log
        cd /tmp/etcback
        tar -zcf etc-$date.tar.gz  /etc /tmp/etcback.log &> /etc/mull
        #将/etc 和/tmp/etcback.log打包放在/tmp/etcback目录下并且该压缩包的名字以当前时间命名
    else
        mkdir /tmp/etcback
        #如果没有此目录则创建此目录
        echo "Date:$date" > /tmp/etcback.log
        echo "Szie:$size" >> /tmp/etcback.log
        cd /tmp/etcback
        tar -zcf etc-$date.tar.gz  /etc /tmp/etcback.log &> /etc/mull
        #将/etc 和/tmp/etcback.log打包放在/tmp/etcback目录下并且该压缩包的名字以当前时间命名
fi

多分支if条件语句

if [ 条件判断式1 ]
    then
        程序
    elseif [条件判断式2]
        程序
    ······
    else
    当所有条件都不成立时,最后执行此程序
fi