Shell編程-08-Shell中的if語(yǔ)句

? ? 在任何一門語(yǔ)言中榛斯,判斷語(yǔ)句總是少不了偎肃,今天來(lái)學(xué)習(xí)一下Shell中的if語(yǔ)句腿倚。

基本語(yǔ)法

單分支情況

  • 第一種語(yǔ)法
if <條件表達(dá)式>
   then
     語(yǔ)句
fi
  • 第二種語(yǔ)法
if <條件表達(dá)式>;then
     語(yǔ)句
fi

其中條件表達(dá)式部分可以是test、[]昼窗、[[]]和(())等條件表達(dá)式是趴。以上兩種格式,可根據(jù)自己實(shí)際情況選擇一種即可澄惊。

雙分支情況

if <條件表達(dá)式>
  then
    語(yǔ)句
else
   語(yǔ)句
fi

多分支情況

if <條件表達(dá)式>
  then
    語(yǔ)句
elif  <條件表達(dá)式>
  then
    語(yǔ)句
elif  <條件表達(dá)式>
  then
    語(yǔ)句
else
   語(yǔ)句
fi

在多分支的if中唆途,每個(gè)elif中后均需要帶有then

分支嵌套情況

if <條件表達(dá)式>
  then
    if <條件表達(dá)式>
      then
       語(yǔ)句
    fi
fi

在以上的寫法注意縮進(jìn)富雅,方便閱讀
建議在一個(gè)if嵌套不要超過(guò)三層

if與條件表達(dá)式語(yǔ)法

? ? 在前面講過(guò)各個(gè)條件測(cè)試表達(dá)式,如test肛搬、[]吹榴、[[]]和(())等條件表達(dá)式,如下所示:

  • 1滚婉、test表達(dá)式
if test <表達(dá)式>
  then
    語(yǔ)句
fi
  • 2图筹、[]表達(dá)式
if [ <表達(dá)式> ]
  then
    語(yǔ)句
fi
  • 3、[ [ ] ]表達(dá)式
if [[ <表達(dá)式> ]]
  then
    語(yǔ)句
fi
  • 4让腹、(( ))表達(dá)式
if (( <表達(dá)式> ))
  then
    語(yǔ)句
fi
  • 5远剩、命令表達(dá)式
if 命令
  then
    語(yǔ)句
fi

if示例

1、if示例:判斷文件是否且為普通文件

[root@localhost ~]# [ -f /etc/passwd ] && echo true || echo false
true
[root@localhost ~]# test -f /etc/passwd && echo true || echo false
true

與以下寫法等效

[root@localhost Test]# cat if.sh
#!/bin/bash
if [ -f "$1" ]
  then
    echo true
else
  echo false
fi

if test -f "$2"
  then
    echo true
else
  echo false
fi
[root@localhost Test]# bash if.sh /etc/passwd /etc/hostssss
true
false

2骇窍、if示例:比較輸入數(shù)字的大小

[root@localhost Test]# cat compareNum.sh
#!/bin/bash
a=$1
b=$2
echo "Inputed number is:" ${a} $瓜晤

if [ $# -ne 2 ]
  then
    echo "input number must be 2 number."
    exit 2
fi

expr $a + 2 &> /dev/null # 檢查是否為整數(shù)
resulta=$?
expr $b + 2 &> /dev/null # 檢查是否為整數(shù)
resultb=$?

if [ $resulta -eq 0 -a $resultb -eq 0 ] # 判斷檢查結(jié)果
    then
    if [ $a -gt $b ]
        then
            echo "$a > $b"
    elif [ $a -lt $b ]
       then
            echo "$a < $b"
    elif [ $a -eq $b ]
          then
           echo "$a = $b"
       else
         echo "error"
       fi
else
   echo "please check your input"
fi

[root@localhost Test]# bash compareNum.sh 1 # 輸入一個(gè)數(shù)字
Inputed number is: 1
input number must be 2 number.

[root@localhost Test]# bash compareNum.sh a b  # 輸入字母
Inputed number is: a b
please check your input

[root@localhost Test]# bash compareNum.sh 900 89 # 輸入兩個(gè)數(shù)字
Inputed number is: 900 89
900 > 89

[root@localhost Test]# bash compareNum.sh 89 900
Inputed number is: 89 900
89 < 900

[root@localhost Test]# bash compareNum.sh 900 900
Inputed number is: 900 900
900 = 900
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市腹纳,隨后出現(xiàn)的幾起案子痢掠,更是在濱河造成了極大的恐慌,老刑警劉巖嘲恍,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件足画,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡佃牛,警方通過(guò)查閱死者的電腦和手機(jī)淹辞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俘侠,“玉大人象缀,你說(shuō)我怎么就攤上這事∫伲” “怎么了央星?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)惫东。 經(jīng)常有香客問(wèn)我莉给,道長(zhǎng),這世上最難降的妖魔是什么凿蒜? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任禁谦,我火速辦了婚禮,結(jié)果婚禮上废封,老公的妹妹穿的比我還像新娘。我一直安慰自己丧蘸,他們只是感情好漂洋,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布遥皂。 她就那樣靜靜地躺著,像睡著了一般刽漂。 火紅的嫁衣襯著肌膚如雪演训。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天贝咙,我揣著相機(jī)與錄音样悟,去河邊找鬼。 笑死庭猩,一個(gè)胖子當(dāng)著我的面吹牛窟她,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蔼水,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼震糖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了趴腋?” 一聲冷哼從身側(cè)響起吊说,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎优炬,沒想到半個(gè)月后颁井,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蠢护,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年蚤蔓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糊余。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秀又,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出贬芥,到底是詐尸還是另有隱情吐辙,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布蘸劈,位于F島的核電站昏苏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏威沫。R本人自食惡果不足惜贤惯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棒掠。 院中可真熱鬧孵构,春花似錦、人聲如沸烟很。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至恤筛,卻和暖如春官还,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背毒坛。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工望伦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人煎殷。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓屯伞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蝌数。 傳聞我的和親對(duì)象是個(gè)殘疾皇子愕掏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

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

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,132評(píng)論 0 13
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5顶伞? 答:HTML5是最新的HTML標(biāo)準(zhǔn)饵撑。 注意:講述HT...
    kismetajun閱讀 27,452評(píng)論 1 45
  • 文/無(wú)悔 專注之心,可以成事唆貌, 專注之力滑潘,可以無(wú)敵。 任世間紛雜锨咙, 心靜如水语卤。 ——20...
    無(wú)悔隨筆閱讀 380評(píng)論 1 1
  • 只此一世,遇見酪刀,偕老 不問(wèn)前世粹舵,不盼來(lái)生 可好?...
    鵬先生的私論坊閱讀 157評(píng)論 0 0
  • 長(zhǎng)夏以來(lái)骂倘,天氣的燥熱讓人心煩眼滤。 每日按部就班的生活,在班車上體會(huì)烈日的灼烤历涝,靠在班車座椅上诅需,默念心靜自然涼的咒語(yǔ),...
    Araybellar閱讀 491評(píng)論 2 2