濮阳杆衣贸易有限公司

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

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

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

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

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

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 位于同一行的時候,這個分號是必須的,否則會有語法錯誤。

實(shí)例1

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

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

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

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

實(shí)例2

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

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

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

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

熟悉其他編程語言的讀者請注意,即使 then 后邊有多條語句,也不需要用{ }包圍起來,因?yàn)橛?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

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

從運(yùn)行結(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 判斷都不成立,就進(jìn)入最后的 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

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

運(yùn)行結(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

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

運(yùn)行結(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)民參考!
  • 推薦文章
    城口县| 眉山市| 永定县| 镇康县| 溧阳市| 玉林市| 永寿县| 平果县| 莒南县| 卢湾区| 莎车县| 田林县| 双峰县| 宁晋县| 东城区| 利津县| 绥江县| 二连浩特市| 婺源县| 延川县| 贺州市| 崇州市| 高淳县| 元阳县| 藁城市| 伊宁市| 桦川县| 化州市| 油尖旺区| 察雅县| 贵南县| 横山县| 临洮县| 宣威市| 独山县| 元阳县| 岗巴县| 宁晋县| 阿城市| 博爱县| 家居|