Shell腳本條件 i f 語句、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腳本中 一定要注意空格的使用比如在[]中別忘記加空格等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章