Linux 條件判斷 - if語句 - case語句 - for語句
01、按照文件類型進行判斷 =>
常用-d、-e、-f
兩種格式:
test -e /root/install.log => 常用
[ -e /root/install.log ] => 兩邊空格必須有
例如:[ -d /root ] && echo "yes" || echo "no":判斷該文件是否存在,並且是否為目錄文件,是yes,不是no。
02、按照文件權限進行判斷 =>
03、兩個文件之間比較
04、兩個數之間的比較 =>
05、單分支 if 條件語句
if [ 條件判斷式 ];then => 條件判斷兩邊空格不能省略
程序
fi
或者
if [ 條件判斷式 ]
then
程序
fi
例子:判斷分區使用率
#!/bin/bash
#統計根分區使用率
# Author :shencao(E-mail:[email protected])
rect=$(df -h | grep /dev/sda5 | awk ‘{print $5}‘ | cut -d "%" -f1)
then
echo "warning! /dev/sda5 is full!!"
fi
06、多分支if語句
if [ 條件判斷式 ];then => 條件判斷兩邊空格不能省略
程序
fi
或者
if [ 條件判斷式 ]
then
條件成立程序
else
條件不成立程序
fi
例子:備份 mysql 數據庫
#!/bin/bash
#備份 mysql 數據庫
# Author :shencao(E-mail:[email protected])
date=$(date +%y%m%d)
size=$(du -sh /etc)
if [ -d /tmp/dbback ]
then
echo "Date is : $date" > /tmp/dbback/db.txt
echo "Size is : $size" >> /tmp/dbback/db.txt
cd /tmp/dbback
tar -zcf etc_$date.tar.gz /etc db.txt $>/dev/null
rm -rf /tmp/dbback/db.txt
else
mkdir /tmp/dbback
echo "Date is : $date" > /tmp/dbback/db.txt
echo "Size is : $size" >> /tmp/dbback/db.txt
cd /tmp/dbback
tar -zcf etc_$date.tar.gz /etc db.txt $>/dev/null
rm -rf /tmp/dbback/db.txt
fi
例子2:判斷apache是否啟動
#!/bin/bash
port=$(nmap -sT 192.168.3.207 | grep tcp | grep http | awk ‘{print $2}‘)
#使用nmap命令掃描服務器,並截取 apache 服務器的狀態,賦予變量 port
if [ "$port" == "open" ]
then
echo "$(date) http is ok" >> /tmp/httpd_acc.log
else
/etc/rc.d/init.d/httpd restart &>/dev/null
echo "$(date) http is reboot!!" >> /tmp/httpd_err.log
fi
07、多分支if條件語句
if [ 條件語句1 ]
then
執行程序1
elif [ 條件語句2 ]
then
執行程序2
else
執行程序2
fi
08、case語句
例子:
Linux 條件判斷 - if語句 - case語句 - for語句