主頁 > 知識庫 > 詳解Shell if else語句的具體使用方法

詳解Shell if else語句的具體使用方法

熱門標(biāo)簽:電商外呼系統(tǒng)排名 地圖標(biāo)注審核周期 沈陽ai電銷智能機器人 如何申請400的電話呀 電話機器人對家居行業(yè)幫助大嗎 黑暗之魂3地圖標(biāo)注 合肥電銷外呼系統(tǒng)供應(yīng)商 AI智能電銷機器人壞處 蘭州電銷機器人加盟

和其它編程語言類似,Shell 也支持選擇結(jié)構(gòu),并且有兩種形式,分別是 if else 語句和 case in 語句。本節(jié)我們先介紹 if else 語句,case in 語句將會在《Shell case in》中介紹。

如果你已經(jīng)熟悉了C語言、Java、JavaScript 等其它編程語言,那么你可能會覺得 Shell 中的 if else 語句有點奇怪。

if 語句

最簡單的用法就是只使用 if 語句,它的語法格式為:

if condition
then
  statement(s)
fi

condition是判斷條件,如果 condition 成立(返回“真”),那么 then 后邊的語句將會被執(zhí)行;如果 condition 不成立(返回“假”),那么不會執(zhí)行任何語句。

從本質(zhì)上講,if 檢測的是命令的退出狀態(tài),我們將在下節(jié)《Shell退出狀態(tài)》中深入講解。

注意,最后必須以fi來閉合,fi 就是 if 倒過來拼寫。也正是有了 fi 來結(jié)尾,所以即使有多條語句也不需要用{ }包圍起來。

如果你喜歡,也可以將 then 和 if 寫在一行:

if condition; then
  statement(s)
fi

請注意 condition 后邊的分號;,當(dāng) if 和 then 位于同一行的時候,這個分號是必須的,否則會有語法錯誤。

實例1

下面的例子使用 if 語句來比較兩個數(shù)字的大?。?br />

#!/bin/bash
read a
read b
if (( $a == $b ))
then
  echo "a和b相等"
fi

運行結(jié)果:
84↙
84↙
a和b相等

在《Shell (()) 》一節(jié)中我們講到,(())是一種數(shù)學(xué)計算命令,它除了可以進行最基本的加減乘除運算,還可以進行大于、小于、等于等關(guān)系運算,以及與、或、非邏輯運算。當(dāng) a 和 b 相等時,(( $a == $b ))判斷條件成立,進入 if,執(zhí)行 then 后邊的 echo 語句。

實例2

在判斷條件中也可以使用邏輯運算符,例如:

#!/bin/bash
read age
read iq
if (( $age > 18  $iq  60 ))
then
  echo "你都成年了,智商怎么還不及格!"
  echo "來C語言中文網(wǎng)(http://c.biancheng.net/)學(xué)習(xí)編程吧,能迅速提高你的智商。"
fi

運行結(jié)果:
20↙
56↙

就是邏輯“與”運算符,只有當(dāng)兩側(cè)的判斷條件都為“真”時,整個判斷條件才為“真”。

熟悉其他編程語言的讀者請注意,即使 then 后邊有多條語句,也不需要用{ }包圍起來,因為有 fi 收尾呢。

if else 語句

如果有兩個分支,就可以使用 if else 語句,它的格式為:

if condition
then
  statement1
else
  statement2
fi

如果 condition 成立,那么 then 后邊的 statement1 語句將會被執(zhí)行;否則,執(zhí)行 else 后邊的 statement2 語句。

舉個例子:

#!/bin/bash
read a
read b
if (( $a == $b ))
then
  echo "a和b相等"
else
  echo "a和b不相等,輸入錯誤"
fi

運行結(jié)果:
10↙
20↙
a 和 b 不相等,輸入錯誤

從運行結(jié)果可以看出,a 和 b 不相等,判斷條件不成立,所以執(zhí)行了 else 后邊的語句。

if elif else 語句

Shell 支持任意數(shù)目的分支,當(dāng)分支比較多時,可以使用 if elif else 結(jié)構(gòu),它的格式為:

if condition1
then
  statement1
elif condition2
then
  statement2
elif condition3
then
  statement3
……
else
  statementn
fi

注意,if 和 elif 后邊都得跟著 then。

整條語句的執(zhí)行邏輯為:

  • 如果 condition1 成立,那么就執(zhí)行 if 后邊的 statement1;如果 condition1 不成立,那么繼續(xù)執(zhí)行 elif,判斷 condition2。
  • 如果 condition2 成立,那么就執(zhí)行 statement2;如果 condition2 不成立,那么繼續(xù)執(zhí)行后邊的 elif,判斷 condition3。
  • 如果 condition3 成立,那么就執(zhí)行 statement3;如果 condition3 不成立,那么繼續(xù)執(zhí)行后邊的 elif。
  • 如果所有的 if 和 elif 判斷都不成立,就進入最后的 else,執(zhí)行 statementn。

舉個例子,輸入年齡,輸出對應(yīng)的人生階段:

#!/bin/bash
read age
if (( $age = 2 )); then
  echo "嬰兒"
elif (( $age >= 3  $age = 8 )); then
  echo "幼兒"
elif (( $age >= 9  $age = 17 )); then
  echo "少年"
elif (( $age >= 18  $age =25 )); then
  echo "成年"
elif (( $age >= 26  $age = 40 )); then
  echo "青年"
elif (( $age >= 41  $age = 60 )); then
  echo "中年"
else
  echo "老年"
fi

運行結(jié)果1:
19
成年

運行結(jié)果2:
100
老年

再舉一個例子,輸入一個整數(shù),輸出該整數(shù)對應(yīng)的星期幾的英文表示:

#!/bin/bash
printf "Input integer number: "
read num
if ((num==1)); then
  echo "Monday"
elif ((num==2)); then
  echo "Tuesday"
elif ((num==3)); then
  echo "Wednesday"
elif ((num==4)); then
  echo "Thursday"
elif ((num==5)); then
  echo "Friday"
elif ((num==6)); then
  echo "Saturday"
elif ((num==7)); then
  echo "Sunday"
else
  echo "error"
fi

運行結(jié)果1:
Input integer number: 4
Thursday

運行結(jié)果2:
Input integer number: 9
error

到此這篇關(guān)于詳解Shell if else語句的具體使用方法的文章就介紹到這了,更多相關(guān)Shell if else語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 基于shell的if和else詳解
  • Windows Powershell IF-ELSEIF-ELSE 語句
  • Shell腳本if else語句小結(jié)
  • linux shell中 if else以及大于、小于、等于邏輯表達(dá)式介紹

標(biāo)簽:隴南 通遼 黔南 河北 常州 河池 淮南 黔南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解Shell if else語句的具體使用方法》,本文關(guān)鍵詞  詳解,Shell,else,語句,的,具體,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解Shell if else語句的具體使用方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解Shell if else語句的具體使用方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章