亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Shell if else語(yǔ)句的具體使用方法

 更新時(shí)間:2021年03月01日 09:31:31   投稿:zx  
這篇文章主要介紹了詳解Shell if else語(yǔ)句的具體使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

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

if 語(yǔ)句

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

if condition
then
  statement(s)
fi

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

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

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

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

if condition; then
  statement(s)
fi

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

實(shí)例1

下面的例子使用 if 語(yǔ)句來比較兩個(gè)數(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ì)算命令,它除了可以進(jìn)行最基本的加減乘除運(yùn)算,還可以進(jìn)行大于、小于、等于等關(guān)系運(yùn)算,以及與、或、非邏輯運(yùn)算。當(dāng) a 和 b 相等時(shí),(( $a == $b ))判斷條件成立,進(jìn)入 if,執(zhí)行 then 后邊的 echo 語(yǔ)句。

實(shí)例2

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

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

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

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

熟悉其他編程語(yǔ)言的讀者請(qǐng)注意,即使 then 后邊有多條語(yǔ)句,也不需要用{ }包圍起來,因?yàn)橛?fi 收尾呢。

if else 語(yǔ)句

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

if condition
then
  statement1
else
  statement2
fi

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

舉個(gè)例子:

#!/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ǔ)句。

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。

舉個(gè)例子,輸入年齡,輸出對(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
老年

再舉一個(gè)例子,輸入一個(gè)整數(shù),輸出該整數(shù)對(duì)應(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語(yǔ)句的具體使用方法的文章就介紹到這了,更多相關(guān)Shell if else語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解kali linux 常用文件與指令路徑

    詳解kali linux 常用文件與指令路徑

    這篇文章主要介紹了kali linux 常用文件與指令路徑,文中給大家介紹了Linux下MySQL忘記root密碼的完美解決方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • 使用shell腳本取出服務(wù)器圖片的方法

    使用shell腳本取出服務(wù)器圖片的方法

    Shell 腳本(shell script),是一種為 shell 編寫的腳本程序。下面通過本文給大家介紹使用shell腳本取出服務(wù)器圖片的方法,需要的朋友參考下吧
    2017-12-12
  • linux shutdown命令詳解

    linux shutdown命令詳解

    Windows 系統(tǒng)自帶一個(gè)名為Shutdown.exe的程序,可以用于關(guān)機(jī)操作(位置在Windows\System32下),一般情況下Windows系統(tǒng)的關(guān)機(jī)都可以通過調(diào)用程序 shutdown.exe來實(shí)現(xiàn)的,同時(shí)該程序也可以用于終止正在計(jì)劃中的關(guān)機(jī)操作
    2017-09-09
  • Shell腳本實(shí)現(xiàn)查找字符串中某字符最后出現(xiàn)的位置

    Shell腳本實(shí)現(xiàn)查找字符串中某字符最后出現(xiàn)的位置

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)查找字符串中某字符最后出現(xiàn)的位置,本文給出了Shell腳本和C語(yǔ)言程序的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-01-01
  • Shell中比較大小簡(jiǎn)潔總結(jié)

    Shell中比較大小簡(jiǎn)潔總結(jié)

    這篇文章主要介紹了Shell中比較大小簡(jiǎn)潔總結(jié),本文總結(jié)了在shell中比較變量大小的一些方法,需要的朋友可以參考下
    2014-12-12
  • 一天一個(gè)shell命令 linux好管家-磁盤-du命令詳解

    一天一個(gè)shell命令 linux好管家-磁盤-du命令詳解

    這篇文章主要介紹了一天一個(gè)shell命令 linux好管家-磁盤-du命令詳解,需要的朋友可以參考下
    2016-06-06
  • 5個(gè)實(shí)用的shell腳本面試題和答案

    5個(gè)實(shí)用的shell腳本面試題和答案

    這篇文章主要介紹了5個(gè)實(shí)用的shell腳本面試題和答案,給出的腳本堪稱編碼規(guī)范,麻雀雖小,異常處理,友好提示,一應(yīng)俱全,值得學(xué)習(xí),需要的朋友可以參考下
    2014-06-06
  • linux?shell?解析命令行參數(shù)及while?getopts用法小結(jié)

    linux?shell?解析命令行參數(shù)及while?getopts用法小結(jié)

    這篇文章主要介紹了linux?shell?解析命令行參數(shù)及while?getopts用法,getpots是Shell命令行參數(shù)解析工具,旨在從Shell?Script的命令行當(dāng)中解析參數(shù),本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2022-05-05
  • Linux文件系統(tǒng)介紹

    Linux文件系統(tǒng)介紹

    這篇文章介紹了Linux中的文件系統(tǒng),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Linux命令行和shell腳本編程寶典 Richard Blum

    Linux命令行和shell腳本編程寶典 Richard Blum

    Linux命令行和shell腳本編程寶典,主要介紹了linux一些命令的使用
    2012-09-09

最新評(píng)論