- 相關(guān)推薦
2016年Linux認(rèn)證考試要點(diǎn):shell程序控制結(jié)構(gòu)語(yǔ)句
shell程序控制結(jié)構(gòu)語(yǔ)句
腳本的控制結(jié)構(gòu)語(yǔ)句有三種基本的類(lèi)型:兩路分支、多路分支以及一個(gè)或多個(gè)命令的循環(huán)執(zhí)行。Linux的bash中的兩路分支語(yǔ)句是if語(yǔ)句,多路分支語(yǔ)句是if-elif和case語(yǔ)句;代碼的循環(huán)執(zhí)行語(yǔ)句是for、while和until語(yǔ)句。
if語(yǔ)句
兩路分支的if語(yǔ)句 格式:
if 判斷條件
then 命令1
else 命令2
Fi
判斷條件包括命令語(yǔ)句和測(cè)試語(yǔ)句兩種方式:
命令語(yǔ)句形式的判斷條件
多路條件判斷分支的if語(yǔ)句
格式為:
if 判斷條件1
then 命令1
elif 判斷條件2
then 命令2
……
else 命令n
Fi
其中elif是else if的縮寫(xiě)
測(cè)試語(yǔ)句
有兩種格式,一種是使用關(guān)鍵字test,而另一種是使用方括號(hào)。格式如下:
test expression
[ expression ]
二者是等效的。同時(shí)要注意幾點(diǎn)
用于三種形式的測(cè)試:文件測(cè)試、字符串測(cè)試和數(shù)值測(cè)試
文件測(cè)試
字符串測(cè)試
數(shù)值測(cè)試
用邏輯操作符進(jìn)行組合的測(cè)試語(yǔ)句
用邏輯操作符進(jìn)行組合的測(cè)試語(yǔ)句實(shí)例
[ ! "$s1" -le 0 ]
! test "$s1" -le 0
[ -f "$s1" –a –w "$s1" ]
test –f "$s1" -a –w "$s1"
[ "$s1" –gt 0 –o "$s2" –lt 10 ]
test "$s1" –gt 0 –o "$s2" –lt 10
[ \( "$a" –gt 0 –a "$a" –lt 10 \) –a "$a" –ne 5 ]
test \( "$a" –gt 0 –a "$a" –lt 10 \) –a "$a" –ne 5
case語(yǔ)句
對(duì)同一變量進(jìn)行多次的測(cè)試,比elif語(yǔ)句更簡(jiǎn)單、簡(jiǎn)潔
case string1 in
str1)
commands-list1;;
str2)
commands-list2;;
...
strn)
commands-listn;;
esac
使用case語(yǔ)句時(shí)應(yīng)注意以下幾點(diǎn)
(1) 每個(gè)正則表達(dá)式后面可有一條或多條命令,其最后一條命令必須以兩個(gè)分號(hào)(;;)結(jié)束。
(2) 正則表達(dá)式中可以使用通配符。
(3) 如果一個(gè)正則表達(dá)式是由多個(gè)模式組成,那么各模式之間應(yīng)以豎線“|”隔開(kāi)。表示各模式是“或”關(guān)系,即只要給定字符串與其中一個(gè)模式相配,就會(huì)執(zhí)行其后的命令表。
使用case語(yǔ)句時(shí)應(yīng)注意以下幾點(diǎn)
(4) 各正則表達(dá)式是唯一的,不應(yīng)重復(fù)出現(xiàn)。
(5) case語(yǔ)句以關(guān)鍵字case開(kāi)頭,以關(guān)鍵字esac結(jié)束。
(6) case的退出(返回)值是整個(gè)結(jié)構(gòu)中最后執(zhí)行的那個(gè)命令的退出值。若沒(méi)有執(zhí)行任何命令,則退出值為零。
for語(yǔ)句
格式:
for variable [in argument-list]
do
command-list
Done
其中的[in argument-list]部分為可選項(xiàng),由于它的不同又可有三種形式。
[in argument-list]部分三種形式
[argument-list]為變量值表
變量variable依次取值表中各字符串
[argument-list]為文件的表達(dá)式
變量的值依次取當(dāng)前目錄(或指定目錄)下與文件表達(dá)式相匹配的文件名,每取值一次,就進(jìn)入循環(huán)體執(zhí)行命令表,直到所有匹配的文件名取完為止。
[argument-list]為空
[argument-list]也可以用$*來(lái)代替,變量依次取位置參數(shù)的值,然后執(zhí)行循環(huán)體中的命令表,直至所有位置參數(shù)取完為止。
while語(yǔ)句
格式為:
while expression
do
command-list
Done
作用:只要expression的值為真,則進(jìn)入循環(huán)體,執(zhí)行command-1ist中的命令,然后再做條件測(cè)試,直到測(cè)試條件為假時(shí)才終止while語(yǔ)句的行。
until語(yǔ)句
格式為:
until expression
do
command-list
done
作用: 只要expression的值為假,就執(zhí)行command—lists的命令。
break和continue語(yǔ)句
break命令可以從循環(huán)體中退出來(lái)。格式為:
break [n]
continue命令跳過(guò)循環(huán)體中在它之后的語(yǔ)句,回到本層循環(huán)的開(kāi)頭,進(jìn)行下一次循環(huán)。格式為:
continue [n]
算術(shù)表達(dá)式
五種基本的算術(shù)運(yùn)算:+(加)、-(減)、\*(乘)、/(除)和%(取模)。shell只提供整數(shù)的運(yùn)算。格式如下:
expr n1運(yùn)算符n2
例:
[expr 15 \* 15
注意:在運(yùn)算符的前后都留有空格,否則expr不對(duì)表達(dá)式進(jìn)行計(jì)算,而直接輸出它們。
自定義函數(shù)
在shell腳本中可以定義并使用函數(shù)。其定義格式為:
Function( )
{
command-list
}
函數(shù)應(yīng)先定義,后使用。調(diào)用函數(shù)時(shí),直接利用函數(shù)名調(diào)用。
【Linux認(rèn)證考試要點(diǎn):shell程序控制結(jié)構(gòu)語(yǔ)句】相關(guān)文章:
Linux認(rèn)證考試科目06-17
linux認(rèn)證考試:FTP設(shè)置技巧08-17
Linux認(rèn)證考試試題及答案08-02
linux認(rèn)證工程師認(rèn)證考試時(shí)間06-16
Linux認(rèn)證的概念10-07