## ?if語句
當需要程序檢測一個條件是真還是假的時候,就可以使用if語句。if語句僅僅是告訴程序:“如果條件為真,則執行這些指令,否則跳過這些指令。”
一個條件為真的語句可以讓程序執行一組指令,一個條件為假的語句則跳過這些指令。
if語句的規則如下:
if[Condition]
? then
? Instruction
fi
一般說來,如果Condition存在(即條件Condition為真),程序則執行下面的Instruction。
條件Condition必須是真或假,且永遠如此。
?下面舉兩個例子來說明if語句的用法。第一個例子是讓程序判斷一個盒子是否已裝滿,條件是盒子最多只能裝下100個小甜餅。
~~~
if[$Quantity -eq 100]
then
echo "The box is full"
fi
~~~
這個語句讓程序檢測一下變量Quantity的值,看它是否是100。如果是,則在屏幕上顯示:
? ? ? The box is full.
否則,就跳過這條語句,并移到fi的下一條語句。注意,在這里,fi是一個保留字,它有特殊的含意(標志if語句的結束)。
再舉一個例子,要求程序檢測一下盒子是否已滿,及是否還有其他的盒子可獲得。當且僅當這兩個條件同時是真時,程序才會報告無法再裝甜餅了,如下例所示:
~~~
if [$Quantity -eq 100 ] &&[$AvailableBoxes -lt 1]
then
echo "The box is full and you have no more boxes,”
fi
~~~
這條語句要求程序檢測一下變量Quantity的值,看它是否是100,及變量AvailableBoxes的
值是否小于1。如果這兩個條件都為真,則顯示信息:The box is Full and you have no more boxes.
如果變量Quantity的值不是100,且盒子也有剩余,程序則跳過這條語句,移到保留字fi的下一條語句。
## if else語句
if語句可以使程序依據一個條件來做出某種判斷,如果條件是真則執行一組規定的指令。
但是,在使用if語句時也存在著一個問題,即條件是假時,可能還需要為程序提供另外一組指令。
當然,也可以再用一條if語句來解決這個問題,即在條件為假時讓程序執行另一組指令。但是,有一種方法比這更簡單,這就是if else語句。if else語句的語法規則是:
? ? if[Condition]
? ? ? ? ? then
? ? ? ? ? ? ? Instruction1
? ? ? ? ? else
? ? ? ? ? ? ? Instruction2
? ? ? fi
? ? 這條語句表示,如果Condition條件為真,程序則執行第一組指令(Instruction1);如果Condition(條件)為假,則程序執行第二組指令(Instruclian2 )
例如:
~~~
if[$Quantity -eq 100]
then
echo "The box is full"
else
echo "The box is not full"
fi
~~~
## if ?elif語句
if elif語句的語法規則如下:
? ? if[Condition1]
? ? ? ? ? then
? ? ? ? ? ? Instruction1
? ? ? elif [Condition2 ]
? ? ? ? then
? ? ? ? ? ? Instruction2
fi
? ? 在這條語句中,如果條件Condition1是真,程序則執行第一組指令Instruction1 ;否則,程序再判斷條件Condition2是否是真。如果條件不為真,程序則執行第二組指令Instruction2;如果Condition2是假,則跳過第二組指令。
例子:
~~~
if[$Quantity -eq 100]
then
echo "The box is full"
elif [$Quantity -eq 95]
echo "You can add 5 cookies to the box."
fi
~~~
## 用if elif語句進行多重選擇
在程序中使用多重if elif語句進行條件檢測,程序能處理多種可能。多重if elif語句結構規則如下:
? ? if[Condition1]
? ? ? ? then
? ? ? ? ? ? Instruction1
? ? ? elif[Condition2]
? ? ? ? ? ? then
? ? ? ? ? ? ? Instruction2
? ? ? elif[Condition3]
? ? ? ? ? ? then
? ? ? ? ? ? ? Instruction3
? ? ? fi
? ? 在這條語句中,如果Condition1是真,程序執行第一組指令Instruction1 ;否則,檢測條件Condition2是否是真。如果條件Condition2是真,則執行第二組指令Instruction2 ;否則,檢測Condition3是否是真。若條件Condition3是真,則執行第三組指令Instruction3;否則,跳過第三組指令Instruction3。
## 保證Linux至少執行一組指令
想像一下,如果我們寫了一個結構龐大的if elif語句,卻發現它什么也不干,會是什么感覺?先別笑,在實際編程中確實有這樣的事發生。不過,要是在if elif語句的最后放一條elif fi語句,就可以避免這樣的災難,如下例所示:
~~~
? if[Condition1]
? ? ? ? then
? ? ? ? ? ??Instruction1
? ? ? elif[Condition2]
? ? ? ? ? ? then
? ? ? ? ? ? ? Instruction2
? ? ? elif[Condition3]
? ? ? ? ? ? then
? ? ? ? ? ? ??Instruction3
? ? ?elif
? ? ? ??Instruction4
? ? ? fi
~~~
? ? 在這條語句中,如果Condition1是真,程序執行第一組指令Instruction1?;否則,檢測條件Condition2是否是真。如果條件Condition2是真,則執行第二組指令Instruction2?;否則,檢測Condition3是否是真。若條件Condition3是真,則執行第三組指令Instruction3;否則,執行第四組指令Instruction4。
- 前言
- linux基礎(一)------登錄以及文件系統的了解
- linux基礎(二)----linux常用命令積累
- linux基礎(三)----linux命令系統學習----安裝和登錄命令
- linux基礎(四)----linux命令系統學習----文件處理命令
- linux基礎(五)----linux命令系統學習----系統管理命令
- linux基礎(六)----linux命令系統學習----網絡操作命令
- linux基礎(七)----linux命令系統學習----系統安全相關命令
- linux基礎(八)----linux命令系統學習----其它命令
- linux基礎(九)----linux性能監測
- linux基礎(十)----linux網絡配置詳細步驟---橋接模式和兩臺機子的遠程通信
- linux基礎(十一)----linux編程基礎----變量
- linux基礎(十二)----linux編程基礎----與用戶交互
- linux基礎(十三)----linux編程基礎----linux運算符
- linux基礎(十四)----linux編程基礎----linux條件控制語句----if else語句
- linux基礎(十五)----linux編程基礎----linux條件控制語句----case語句
- linux基礎(十六)----linux編程基礎----linux條件控制語句----多層嵌套控制結構
- linux基礎(十七)----linux編程基礎----linux循環控制語句----while循環
- linux基礎(十八)----linux編程基礎----linux循環控制語句----for in循環
- linux基礎(十九)----linux編程基礎----linux循環控制語句----break中斷和continue繼續
- linux基礎(二十)----linux編程基礎----子程序----函數