流程控制 -- if语句

2017-09-21  本文已影响0人  陈智涛

1、单分支if条件语句

格式:

if [ 条件判断式 ]; then
    程序
fi 

或者

if [ 条件判断式 ] 
    then
        程序
fi

单分支注意的几个点:

屏幕快照 2017-09-20 下午5.46.45.png

示例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

屏幕快照 2017-09-21 上午11.53.32.png

3、多分支if 条件语句

格式:

if  [ 条件判断语句1 ]
    then
        当条件判断语句1成立时执行的语句
elif [ 条件判断语句2 ]
    then
        当条件判断语句2成立时执行的语句
...省略更多条件判断
else
    当所有条件都不成立时,执行该语句
fi
上一篇 下一篇

猜你喜欢

热点阅读