Shell條件陳述句之if陳述句、case陳述句
- 一、i f 陳述句
- 1. 單分支if陳述句
- 2. 雙分支 i f 陳述句
- 3. 多分支結構
- 二、case陳述句多分枝結構
一、i f 陳述句
1. 單分支if陳述句
條件判斷陳述句,用條件來控制判斷是否執行命令

陳述句格式:
if 條件測驗 #用來篩選是否進入命令序列
then 命令序列 #這里是滿足條件測驗后執行的命令
fi #fi是結尾
注意:以 i f 開始 就要記得以f i 結束,這兩個是一對,少寫就報錯,
示例

這里的-gt是大于,-ge才是大于等于

2. 雙分支 i f 陳述句
一般的格式:
if 條件測驗 #用來篩選是否進入命令序列
then 命令序列1 #這里是滿足條件測驗后執行的命令
else 命令序列2 #這是是不滿足條件所執行的命令,如果沒有命令,則不執行直接結束,
fi #fi是結尾

3. 多分支結構
由于判斷磁區更加精細的需要,用多分支線結構來進行分類輸出,
即:滿足第一個條件測驗后,再次進行篩選,以此類推,

這里用一個簡單多分支結構來實驗
#!/bin/bash
#學習成績的分檔
read -p "請輸入您的分數(0-100):" score
if [ $score -ge 0 ] && [ $score -le 100 ]
then
if [ $score -ge 90 ] && [ $score -le 100 ]
then
echo " 恭喜得到$score分,棒! "
elif [ $score -ge 70 ] && [ $score -le 89 ]
then
echo "得到$score分,再接再厲!"
elif [ $score -ge 60 ] && [ $score -le 69 ]
then
echo "僅僅及格,你這不點贊收藏? "
elif [ $score -ge 0 ] && [ $score -le 59 ]
then
echo "得到$score分,就這點分還來白嫖?快去一鍵三連! "
fi
else
echo " 請正確輸入! "
fi

這里具體輸入測驗以下結果:

二、case陳述句多分枝結構
(執行效率比if快,它直接去找相關的滿足的條件,而if一條一條往下找,會慢一點)

一般的格式:
case 變數值 in
模式 1) #符合模式1時,執行命令1
命令序列 1 #這里是一個具體的命令1
;; #這里表示命令序列1的結束
模式 2)
命令序列 2
;;
......
*) #默認其他沒有模式的執行
默認命令序列
esac #反寫case固定格式
模式中可以使用方括號表示一個連續的范圍,如"[ 0-9 ]"
#!/bin/bash
#case測驗
read -p "請輸入你的ACP成績(0-100):" score
case $score in
[89][0-9]|100)
echo "$score,可以通過!"
;;
[1-7][0-9])
echo "$score,同志仍需努力"
;;
[0-9])
echo "$score,同志仍需努力"
;;
*)
echo "請正確輸入分數"
esac


注意:shell腳本中 一定要注意空格的使用比如在[]中別忘記加空格等,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/237172.html
標籤:其他
上一篇:docker運行專案失敗 云服務器資料盤如何掛載 docker目錄掛載到資料盤
下一篇:SHell編程之條件陳述句
