Shell if else語(yǔ)句(詳解版)

1、if 語(yǔ)句

最簡(jiǎn)單的用法就是只使用 if 語(yǔ)句,它的語(yǔ)法格式為:

if  condition
then
    statement(s)
fi

condition是判斷條件,如果 condition 成立(返回“真”),那么 then 后邊的語(yǔ)句將會(huì)被執(zhí)行洪唐;如果 condition 不成立(返回“假”)钻蹬,那么不會(huì)執(zhí)行任何語(yǔ)句。
注意凭需,最后必須以fi來(lái)閉合问欠,fi 就是 if 倒過(guò)來(lái)拼寫。也正是有了 fi 來(lái)結(jié)尾粒蜈,所以即使有多條語(yǔ)句也不需要用{ }包圍起來(lái)顺献。
如果你喜歡,也可以將 then 和 if 寫在一行:

if  condition;  then
    statement(s)
fi

請(qǐng)注意 condition 后邊的分號(hào);枯怖,當(dāng) if 和 then 位于同一行的時(shí)候注整,這個(gè)分號(hào)是必須的,否則會(huì)有語(yǔ)法錯(cuò)誤。

例如肿轨,使用 if 語(yǔ)句來(lái)比較兩個(gè)數(shù)字的大惺倜帷:

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

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

84↙
84↙
a和b相等

2、if else 語(yǔ)句

如果有兩個(gè)分支椒袍,就可以使用 if else 語(yǔ)句驼唱,它的格式為:

if  condition
then
   statement1
else
   statement2
fi

如果 condition 成立,那么 then 后邊的 statement1 語(yǔ)句將會(huì)被執(zhí)行驹暑;否則玫恳,執(zhí)行 else 后邊的 statement2 語(yǔ)句。

例如:

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

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

10↙
20↙
a 和 b 不相等京办,輸入錯(cuò)誤

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

3视搏、if elif else 語(yǔ)句

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

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

注意佑力,if 和 elif 后邊都得跟著 then。
整條語(yǔ)句的執(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最易。

例如怒坯,,輸入年齡耘纱,輸出對(duì)應(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
老年
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末敬肚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子束析,更是在濱河造成了極大的恐慌艳馒,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件员寇,死亡現(xiàn)場(chǎng)離奇詭異弄慰,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蝶锋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門陆爽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人扳缕,你說(shuō)我怎么就攤上這事慌闭。” “怎么了躯舔?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵驴剔,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我粥庄,道長(zhǎng)丧失,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任惜互,我火速辦了婚禮布讹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘训堆。我一直安慰自己描验,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布坑鱼。 她就那樣靜靜地躺著膘流,像睡著了一般。 火紅的嫁衣襯著肌膚如雪姑躲。 梳的紋絲不亂的頭發(fā)上睡扬,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天盟蚣,我揣著相機(jī)與錄音黍析,去河邊找鬼。 笑死屎开,一個(gè)胖子當(dāng)著我的面吹牛阐枣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼蔼两,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼甩鳄!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起额划,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤妙啃,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后俊戳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揖赴,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年抑胎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了燥滑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡阿逃,死狀恐怖铭拧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恃锉,我是刑警寧澤搀菩,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站淡喜,受9級(jí)特大地震影響秕磷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜炼团,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一澎嚣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瘟芝,春花似錦易桃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至贸宏,卻和暖如春造寝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吭练。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工诫龙, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鲫咽。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓签赃,卻偏偏與公主長(zhǎng)得像谷异,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锦聊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容