版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024特定額度委托擔(dān)保協(xié)議范本
- 2024年顧問工作協(xié)議樣本總匯
- 重慶市2020年中考語文試題(A卷)(解析版)
- 2023屆新高考化學(xué)選考一輪總復(fù)習(xí)檢測-專題十七生物大分子有機(jī)合成專題檢測
- 2024國際工程協(xié)議集錦
- 2024年基于DRGs的醫(yī)療資源公平性分析與改進(jìn)
- 齊魯工業(yè)大學(xué)《Java面向?qū)ο蟮某绦蛟O(shè)計(jì)》2022-2023學(xué)年期末試卷
- 光伏發(fā)電運(yùn)維合同
- 迎接2024:創(chuàng)新人力資源管理教案設(shè)計(jì)
- 保育老師培訓(xùn)計(jì)劃
- 瓶裝水銷售方案
- 房產(chǎn)背戶協(xié)議
- 婦科人工流產(chǎn)女性落實(shí)高效避孕措施依從性低原因分析魚骨圖柏拉圖對策擬定
- 外陰陰道炎癥
- 壓力容器及壓力管道課件
- 部編版小學(xué)語文六年級上冊《童年》閱讀測試題及答案(全冊)
- 山東省濟(jì)南市歷城區(qū)2023-2024學(xué)年五年級上學(xué)期期中數(shù)學(xué)試卷
- 基本消防知識考試題庫200題(通用版)
- 讀后續(xù)寫人與動(dòng)物-天使狗狗的守護(hù)講義 高三英語作文復(fù)習(xí)寫作專項(xiàng)
- 課件大班科學(xué)活動(dòng)《有趣的影子》
- 監(jiān)控施工方案四篇
評論
0/150
提交評論