第4章-Shell程序設(shè)計(jì)課件_第1頁
第4章-Shell程序設(shè)計(jì)課件_第2頁
第4章-Shell程序設(shè)計(jì)課件_第3頁
第4章-Shell程序設(shè)計(jì)課件_第4頁
第4章-Shell程序設(shè)計(jì)課件_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Linux應(yīng)用與開發(fā)典型實(shí)例精講配套教材:《Linux應(yīng)用與開發(fā)典型實(shí)例精講》

邱鐵、于玉龍、徐子川編著.

.2010.5Email:第4章Shell程序設(shè)計(jì)

學(xué)習(xí)本章要達(dá)到的目標(biāo):1.學(xué)會使用Shell編程,能夠編寫Shell腳本程序;2.掌握Shell編程中用到的變量、流程控制語句、常用命令、特殊符號;3.基本學(xué)會使用Shell腳本函數(shù)。4.1Shell編程簡介Shell提供了一種以腳本文件的方式來實(shí)現(xiàn)之,將所有需要執(zhí)行的命令按照類似于編程的方法寫到一個(gè)文件中,當(dāng)需要使用時(shí),只需要運(yùn)行這個(gè)文件即可完成指定的任務(wù)

Shell腳本文件的運(yùn)行同可執(zhí)行文件的使用方法相同,在命令提示符下輸入文件的路徑即可運(yùn)行

4.2系統(tǒng)變量4.3條件測試條件測試可以判斷腳本程序運(yùn)行的狀態(tài)。它常用于條件分支,以便在不同的運(yùn)行狀態(tài)下執(zhí)行不同的命令。

[param1

判斷符號

param2][判斷符號

param]

4.3.1文件狀態(tài)測試-b

判斷文件是否為塊設(shè)備,若文件不存在返回假。-c 判斷文件是否為字符設(shè)備,若文件不存在返回假。-dpathname

判斷路徑pathname是否為目錄,若路徑不存在返回假。-epathname

判斷路徑pathname是否存在。-f 判斷文件是否為真會文件,若文件不存在返回假。-gpathname

判斷路徑pathname是否設(shè)置了SGID位,若路徑不存在返回假。-h 判斷文件是否為鏈接文件,若文件不存在返回假。-kpathname

判斷路徑pathname是否設(shè)置了“粘滯”位,若路徑不存在返回假。-p 判斷文件是否為管道文件,若文件不存在返回假。-rpathname

判斷路徑pathname是否為可讀,若路徑不存在返回假。-s 判斷文件的尺寸是否大于0,若文件不存在返回假。-S 判斷文件是否是Socket,文件不存在返回假。-upathname

判斷路徑pathname是否設(shè)置了SUID位,若路徑不存在返回假。-wpathname

判斷路徑pathname是否為可寫,若路徑不存在返回假。-xpathname

判斷路徑pathname是否為可執(zhí)行,若路徑不存在返回假。-Opathname

判斷路徑pathname是否為當(dāng)前用戶所擁有,若路徑不存在返回假。-Gpathname

判斷路徑pathname的用戶組是否為當(dāng)前用戶所在組,若路徑不存在返回假。file1-ntfile2

判斷文件file1是否比文件file2新。file1-otfile2

判斷文件file1是否比穩(wěn)健file2舊。

4.3.2邏輯操作param1–aparam2

邏輯與。param1–oparam2

邏輯或。!param

邏輯非。4.3.3字符串測試-zstring

判斷字符串string是否為空串,即長度為0。-nstring

判斷字符串string是否為非空串。string1=string2

判斷字符串string1和string2是否相等。string1!=string2

判斷字符串string1和string2是否不等。string1<string2

按字符編碼表排序,字符串string1是否在string2之前。string1>string2

按字符編碼表排序,字符串string1是否在string2之后。4.3.4數(shù)值測試val1–eqval2

判斷val1和val2的數(shù)值是否相等。val1–neval2

判斷val1和val2的數(shù)值是否不等。val1–ltval2

判斷val1是否小于val2。val1–leval2

判斷val1是否小于等于val2。val1–gtval2

判斷val1是否大于val2。val1–geval2

判斷val1是否大于等于val2。4.4Shell流程控制語句流程控制包括條件執(zhí)行、循環(huán)、分支執(zhí)行。4.4.1if語句if…;then……elif…;then……else……fi

4.4.2case語句casestrinpattern)dosomething;;……esac

4.4.3while語句while…;do……Doneuntil…;do……done

4.4.4for語句forvarinstr1

str2…;do……done

4.5Shell編程中的常用命令與符號4.5.1read命令

命令的語法:read[參數(shù)]變量名常用的參數(shù)如下:-ttimeout 設(shè)定超時(shí)時(shí)間。-pprompt 設(shè)定提示信息,該提示信息將會顯在光標(biāo)前。4.5.2select命令selectvarinstr1

str2…;dobreak;done

4.5.3花括號花括號是一種強(qiáng)制的整體標(biāo)識,可以讓一個(gè)非整體的字符串強(qiáng)制的解釋成一個(gè)整體

{catabc.txtecho“aaa”}

4.5.4引號單引號可以取消所有的轉(zhuǎn)義符號、通配符和分隔符,雙引號取消通配符和分隔符的轉(zhuǎn)義,但對于變量依然進(jìn)行轉(zhuǎn)義

4.5.5注釋注釋語句所在行的第一個(gè)字符必須為“#”,其后是注釋的內(nèi)容。

4.6函數(shù)Shell中函數(shù)被看成是一個(gè)小的腳本程序,僅在當(dāng)前腳本內(nèi)部進(jìn)行調(diào)用

funname(){……}

4.7應(yīng)用實(shí)例訓(xùn)練例1.需要完成一個(gè)程序,用戶輸入百分制的分?jǐn)?shù),之后返回“A”“B”“C”“D”“E”的等級。其中,A等級為90至100分,B等級為80至89分,C等級為70至79分,D等級為60至69分,E等級為0至59分。needquit=0while[$needquit-eq0]do echo"Pleaseinputthescore" readscore case$scorein 100|9[0-9])echo"VeryGood";;

8[0-9])echo"Good";; 7[0-9])echo"Middle";; 6[0-9])echo"Pass";; [1-5][0-9])echo"Failure";; quit|q)echo"Quit"

needquit=1;; *)echo"WrongInput!";; esac echo""done

例2.完成一個(gè)文件操作,根據(jù)用戶指定的目錄,刪除其中所有文件名以“.c”結(jié)尾的文件,若這些文件刪除后,目錄中沒有其他的文件,則將該目錄也一并刪除。foriin$*;do find“$i”–name“*.c”–execrm–r–f{}\;

[“$i/*”=$i/*]&&{

rmdir“$i”

echo“DeleteDirectory$i” }done

思考與練習(xí)思考Shell編程與Shell命令之間的關(guān)系。閱讀資料,了解Shell啟動(dòng)的流程,體會Shell腳本程序在Shell啟動(dòng)過程中的作用。用Shell編程的形式完成下列程序:輸出用戶通過命令行參數(shù)形式提供的多個(gè)整數(shù)的平均數(shù)。具體調(diào)用格式如下:$./avg12345678Average:45經(jīng)常不斷地學(xué)習(xí),你就什么都知道。你知道得越多,你就越有力量StudyConstantly,AndYouWillKnowEverything.TheMoreYouKnow,TheMo

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論