教程linux shell編程從初學(xué)到精通_第1頁
教程linux shell編程從初學(xué)到精通_第2頁
教程linux shell編程從初學(xué)到精通_第3頁
教程linux shell編程從初學(xué)到精通_第4頁
教程linux shell編程從初學(xué)到精通_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第7章 退出、測試、判斷及操作符南京財經(jīng)大學(xué) 江蘇省電子商務(wù)重點實驗室伍之昂 王有權(quán)提綱退出狀態(tài)測試 整數(shù)比較運(yùn)算符字符串運(yùn)算符文件操作符邏輯運(yùn)算符判斷簡單if結(jié)構(gòu)if/else結(jié)構(gòu)if/elif/else結(jié)構(gòu)case結(jié)構(gòu)運(yùn)算符算術(shù)運(yùn)算符位運(yùn)算符自增自減運(yùn)算符數(shù)字常量退出狀態(tài)在Linux系統(tǒng)中,每當(dāng)命令執(zhí)行完成后,系統(tǒng)都會返回一個退出狀態(tài)。該退出狀態(tài)用一整數(shù)值表示,用于判斷命令運(yùn)行正確與否。若退出狀態(tài)值為0,表示命令運(yùn)行成功若退出狀態(tài)值不為0時,則表示命令運(yùn)行失敗最后一次執(zhí)行的命令的退出狀態(tài)值被保存在內(nèi)置變量“$?”中,所以可以通過echo語句進(jìn)行測試命令是否運(yùn)行成功演示例7-1和7-2測試結(jié)

2、構(gòu)測試命令可用于測試表達(dá)式的條件的真假。如果測試的條件為真,則返回一個 0值;如果測試的條件為假,將返回一個非 0整數(shù)值。測試命令有兩種結(jié)構(gòu):一種命令是使用test命令進(jìn)行測試,該命令的格式為: test expression 其中條件expression是一個表達(dá)式,該表達(dá)式可由數(shù)字、字符串、文本和文件屬性的比較,同時可加入各種算術(shù)、字符串、文本等運(yùn)算符。另一種命令格式: expression 其中“ ”是啟動測試的命令,但要求在expression后要有一個“ ”與其配對。使用該命令時要特別注意“”后和“”前的空格是必不可少的。 整數(shù)運(yùn)算符(1)整數(shù)比較運(yùn)算符是算術(shù)運(yùn)算中很簡單的一種,用于

3、兩個值的比較,測試其比較結(jié)果是否符合給定的條件。例如: a eq b 如果滿足a等于b,則測試的結(jié)果為真(測試條件用0表示) 如果a不等于b,則測試結(jié)果為假(測試條件用非0表示)測試時有兩種格式: (1) test num1 numeric_operator num2“ (2) num1 numeric _operator num2 整數(shù)運(yùn)算符(2)演示例7-3整數(shù)比較運(yùn)算符描述num1 -eq num2如果 num1等于num2,測試結(jié)果為0num1 -ge num2如果 num1大于或等于num2,測試結(jié)果為0num1 -gt num2如果 num1大于num2,測試結(jié)果為0num1 -l

4、e num2如果 num1小于或等于num2,測試結(jié)果為0num1 -lt num2如果 num1小于num2,測試結(jié)果為0num1 -ne num2如果 num1不等于num2,測試結(jié)果為0字符串運(yùn)算符字符串運(yùn)算符用于測試字符串是否為空、兩個字符串是否相等或者是否不相等演示例7-6字符串運(yùn)算符 描述string測試字符串string是否不為空-n string測試字符串string是否不為空-z string測試字符串string是否為空string1 = string2測試字符串string1是否與字符串string2相等string1 != string2測試字符串string1是否與字

5、符串string2 不相等文件操作符Linux Shell提供了大量的文件操作符,這樣可以完成測試文件的各種操作。比較常用的文件操作符如下表所示:演示例7-13文件運(yùn)算符描述-d file 測試file是否為目錄-e file測試file是否存在-f file測試file是否為普通文件-r file測試file是否是進(jìn)程可讀文件-s file測試file的長度是否不為0-w file測試file是否是進(jìn)程可寫文件-x file測試file是否是進(jìn)程可執(zhí)行文件-L file測試file是否符號化鏈接邏輯運(yùn)算符(1)邏輯運(yùn)算符主要包括邏輯非、邏輯與、邏輯或運(yùn)算符,具體描述如下表所示:邏輯操作符描述

6、!expression 如果expression為假,則測試結(jié)果為真expression1 a expression2如果expression1和expression同時為真,則測試結(jié)果為真expression1 o expression2如果expression1和expression2中有一個為真,則測試條件為真邏輯運(yùn)算符(2)下表是邏輯運(yùn)算符的“真假表”,其中expr1和expr2為表達(dá)式,用于描述了一個測試條件。演示例7-15演示例7-16expr1expr2! expr1! expr2expr1 a expr2expr1 o expr2真真假假真真真假假真假真假真真假假真假假真真假假

7、簡單if結(jié)構(gòu)簡單的if結(jié)構(gòu)是: if expression then command command fi在使用這種簡單if結(jié)構(gòu)時,要特別注意測試條件后如果沒有“;”,則then語句要換行,否則會產(chǎn)生不必要的錯誤。如果if和then可以處于同一行,則必須用“;”演示例7-19if/else結(jié)構(gòu)命令是雙向選擇語句,當(dāng)用戶執(zhí)行腳本時如果不滿足if后的表達(dá)式也會執(zhí)行else后的命令,所以有很好的交互性。其結(jié)構(gòu)為: if expression1 then command command else command command fi演示例7-22演示例7-24if/elif/else結(jié)構(gòu)if/elif

8、/else結(jié)構(gòu)針對某一事件的多種情況進(jìn)行處理。通常表現(xiàn)為“如果滿足某種條件,則進(jìn)行某種處理,否則接著判斷另一個條件,直到找到滿足的條件,然后執(zhí)行相應(yīng)的處理”。其語法格式為:演示例7-25elif expressionNthen command commandelse command commandfi if expression1 then command command elif expression2 then command command case結(jié)構(gòu)和if/elif/else結(jié)構(gòu)一樣,case結(jié)構(gòu)同樣可用于多分支選擇語句,常用來根據(jù)表達(dá)式的值選擇要執(zhí)行的語句,該命令的一般格式為: 演

9、示7-28case Variable invalue1) commandcommand;value2) command command;valueN) command command;*) command command;esac算術(shù)運(yùn)算符在Linux Shell中,算術(shù)運(yùn)算符包括:+(加運(yùn)算)、-(減運(yùn)算)、*(乘運(yùn)算)、/(除運(yùn)算)、%(取余運(yùn)算)、*(冪運(yùn)算),這些算術(shù)運(yùn)算符的舉例及其結(jié)果如下表所示:例7-29、 運(yùn)算符舉例結(jié)果+(加運(yùn)算)3+58-(減運(yùn)算)5-32*(乘運(yùn)算)5*315/(除運(yùn)算)8/32%(取余運(yùn)算)15%43*(冪運(yùn)算)5*3125位運(yùn)算符位運(yùn)算符在Shell編程

10、中很少使用,通常用于整數(shù)間的運(yùn)算,位運(yùn)算符是針對整數(shù)在內(nèi)存中存儲的二進(jìn)制數(shù)據(jù)流中的位進(jìn)行的操作。例7-33、 運(yùn)算符舉例解釋和value值(左移)value=4(右移)value=828右移2位,value值為2&(按位與)value=8&48按位與4,value值為0|(按位或)value=8|48按位或4,value值為12(按位非)value=8按位非8,value值為-9(按位異或)value=10310按位異或3,value值為9自增自減運(yùn)算符自增自減操作符主要包括前置自增(+variable) 、前置自減(-variable)、后置自增(variable+)和后置自減(variable-)。前置操作首先改變變量的值(+用于給變量加1,-用于給變量減1),然后在將改變的變量值交給表達(dá)式使用后置變量則是在表達(dá)式使用后再改變變量的值要特別注意自增自減操作符的操作元只能是變量,不能是常數(shù)或表達(dá)式,且該變量值必須為整數(shù)型,例如:+1、(num+2)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論