1. 程式人生 > >Linux 條件判斷 - if語句 - case語句 - for語句

Linux 條件判斷 - if語句 - case語句 - for語句

/dev/null 3.2 格式 || -h /tmp 兩個文件 e-mail ini

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)

      if [ $rect -ge 10 ]
        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語句