1. 程式人生 > 其它 >Shell指令碼學習筆記5——if條件語句

Shell指令碼學習筆記5——if條件語句

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

if條件語句

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

單分支結構:

由if、then、fi關鍵片語成,只在條件成立後執行。

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

編寫Shell指令碼並寫入下面的語句:

1 2 3 4 5 6 #!/bin/bash DIR="/home/jacun" if[ ! -e $DIR ]
then mkdir-p $DIR fi

執行指令碼:

1 sh DemoCreateFolder.sh

檢視該目錄是否被建立:

1 ls-d/home/jacun

雙分支結構

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

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

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

1 2 3 4 5 6 7 8 #!/bin/bash ping-c 3 -i 0.2 -W 3 $1 &>/home/jacun/jacun if[ $? -eq0 ] then echo"$1 is OK!" else echo"$1 is down" fi
1 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

1 vim DemoGrade.sh

編輯內容:

1 2 3 4 5 6 7 8 #!/bin/bash read-p"請輸入分數(0-100):"GRADE if[ $GRADE -ge85 ] && [ $GRADE -le100 ];then echo"$GRADE 優秀" elif[ $GRADE -ge70 ] && [ $GRADE -le84 ];then echo"$GRADE 合格" elseecho"$GRADE 不及格" fi

原文連結:https://www.cnblogs.com/zjiacun/p/8194807.html