shell IF分支判斷語句


單分支IF條件語句

if [ 條件判斷式 ] then
  程序;
fi //結束的時候if反過來寫 fi
-----------------------------
/**
 * if test -d $1 then ... else ..fi
 * 變量測試語句可以用[]進行簡化,如test -d $1 等價於[ -d $1 ] (注意空格不要少了)
**/ 
*) if語句使用fi結尾和一般語言使用大括號結尾不同
*)[條件判斷式] 就是使用test命令判斷,所以中括號和條件判斷式之間必須有空格
*)then 后面跟符號條件之后執行的程序,可以放在[]之后,用";"分割。也可以換行寫入,就不需要";"了
---------------------使用實例-----------------
"判斷登錄的用戶是否為root"
#!/bin/bash(改行表示語言標志)
test $(env | grep "USER" | cut -d "=" -f 2)
if[ "$test"==root ]
 then
  echo "current user is root"
fi
-------------------------------------------------
"判斷分區使用率"
#!/bin/bash
test =$(df -h | grep sda5 | awk '{print $5}' | cut -d "%" -f 1)
#把分區使用率作為變量值賦予變量rate
if [ -ge 90 ]
  then
    echo "文件滿了"
fi 

多分支語句

if [ 條件判斷式1 ]
 then
  當條件判斷式1成立時,執行程序1
elif [ 條件判斷式2 ]
 then
  當條件判斷式2成立時,執行程序2
...省略更多條件....
else
  當所有條件都不成立,最后執行此程序
fi

雙分支語句

if [ 條件判斷式 ]
 then 
   條件成立時,執行的程序
 else
   條件不成立時,執行的另一個程序
fi

"判斷輸入的是不是目錄"
#!/bin/bash
 read -t 30 -p "please input a dir :" dir
 if[ -d "$dir" ] //注意前后的空格
   then
    echo "輸入的是目錄"
   else
    echo "輸入的不是目錄"
fi


"判斷apache是否啟動"
#!/bin/bash
test = $(ps aux | grep httpd | grep -v grep)
#截取httpd進程,並把結果賦予變量test
if [ -n test ]
#如果test不為空
 then
  echo "the apache is on running!" >> /~/running.log
 else
  /etc/rc.d/init.d/httpd start &> dev/null
  echo "the apache is restart!" >> /~/restart.log
fi


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM