Shellifelse語句的用法是什么-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“Shell if else語句的用法是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元洮北做網(wǎng)站,已為上家服務(wù),為洮北各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792

和其它編程語言類似,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ù)字的大小:


#!/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

“Shell if else語句的用法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)站標(biāo)題:Shellifelse語句的用法是什么-創(chuàng)新互聯(lián)
文章源于:http://muchs.cn/article16/cdspdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)網(wǎng)站改版、品牌網(wǎng)站設(shè)計網(wǎng)站排名、網(wǎng)站收錄、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作