Linux就該這么學--Shell腳本條件語句(一)


1.條件測試語句能夠讓Shell腳本根據實際工作靈活調整工作內容,例如判斷系統的狀態后執行指定的工作,或創建指定數量的用戶,批量修改用戶密碼,這些都可以讓Shell腳本通過條件測試語句完成。

if條件語句

if條件語句分為單分支結構雙分支結構多分支結構,復雜度逐級上升,但卻可以讓Shell腳本更加的靈活。

 

單分支結構:

由if、then、fi關鍵詞組成,只在條件成立后執行。

單分支if語句:判斷目錄是否存在,若不存在則自動創建。

編寫Shell腳本並寫入下面的語句:

#!/bin/bash
DIR="/home/jacun"
if [ ! -e $DIR ]
then
mkdir -p $DIR
fi

執行腳本:

sh DemoCreateFolder.sh

查看該目錄是否被創建:

ls -d /home/jacun

 

 

雙分支結構

由if、then、else、fi關鍵詞組成,做條件成立或條件不成立的判斷。

雙分支if語句:判斷指定主機能否ping通,根據返回結果分別給予提示或警告。

為了減少用戶的等待時間,需要為ping命令追加-c參數代表發送數據包的個數,-i代表每0.2秒發送一個數據包,-W則為3秒即超時。而$1為用戶輸入的第一個參數(IP地址),$?為上一條命令的執行結果,判斷是否等於0(即成功)。

#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /home/jacun/jacun
if [ $? -eq 0 ]
then
echo "$1 is OK!"
else
echo "$1 is down"
fi
sh DemoPing.sh 192.168.20.47

 檢測主機IP地址,根據返回值判斷是否OK:

判斷主機出現網絡故障:

 

多分支結構

由if、then、else、elif、fi關鍵詞組成。

多分支if語句:

判斷用戶輸入的分數在那個區間內,然后判定為優秀、合格或不及格:

read命令用於將用戶的輸入賦值給指定變量,格式為:(read -p [提示語句] 變量名)

使用read命令讓用戶為GRADE變量賦值,判斷分數必須同時滿足大於85且小於100才輸出"優秀",判斷分數必須同時滿足大於70且小於84才輸出"合格",其余的情況輸出"不及格"。

創建並編輯DemoGrade.sh

vim DemoGrade.sh

 編輯內容:

#!/bin/bash
read -p "請輸入分數(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ];then
echo "$GRADE 優秀"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ];then
echo "$GRADE 合格"
else echo "$GRADE 不及格"
fi

 

 


免責聲明!

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



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