中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Shell中使用if else語句

發布時間:2021-03-01 16:45:38 來源:億速云 閱讀:203 作者:Leah 欄目:開發技術

如何在Shell中使用if else語句?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

if 語句

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

if condition
then
  statement(s)
fi

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

從本質上講,if 檢測的是命令的退出狀態,我們將在下節《Shell退出狀態》中深入講解。

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

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

if condition; then
  statement(s)
fi

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

實例1

下面的例子使用 if 語句來比較兩個數字的大小:

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

運行結果:
84↙
84↙
a和b相等

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

實例2

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

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

運行結果:
20↙
56↙

&&就是邏輯“與”運算符,只有當&&兩側的判斷條件都為“真”時,整個判斷條件才為“真”。

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

if else 語句

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

if condition
then
  statement1
else
  statement2
fi

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

舉個例子:

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

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

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

if elif else 語句

Shell 支持任意數目的分支,當分支比較多時,可以使用 if elif else 結構,它的格式為:

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

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

整條語句的執行邏輯為:

  • 如果 condition1 成立,那么就執行 if 后邊的 statement1;如果 condition1 不成立,那么繼續執行 elif,判斷 condition2。

  • 如果 condition2 成立,那么就執行 statement2;如果 condition2 不成立,那么繼續執行后邊的 elif,判斷 condition3。

  • 如果 condition3 成立,那么就執行 statement3;如果 condition3 不成立,那么繼續執行后邊的 elif。

  • 如果所有的 if 和 elif 判斷都不成立,就進入最后的 else,執行 statementn。

舉個例子,輸入年齡,輸出對應的人生階段:

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

運行結果1:
19
成年

運行結果2:
100
老年

再舉一個例子,輸入一個整數,輸出該整數對應的星期幾的英文表示:

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

運行結果1:
Input integer number: 4
Thursday

運行結果2:
Input integer number: 9
error

看完上述內容,你們掌握如何在Shell中使用if else語句的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永顺县| 玛纳斯县| 甘孜| 堆龙德庆县| 罗山县| 黔江区| 镇雄县| 芒康县| 河北区| 兰坪| 开平市| 海宁市| 科技| 潮州市| 巴彦县| 新竹市| 乌拉特前旗| 彰化县| 海城市| 西平县| 汕尾市| 青海省| 方山县| 鱼台县| 灵石县| 林西县| 镇雄县| 汝阳县| 中方县| 远安县| 新邵县| 平湖市| 石家庄市| 洞头县| 融水| 宜章县| 上栗县| 宁河县| 德江县| 漠河县| 老河口市|