下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第17章 條 件 測 試寫時,有時要字符串是否相等,可能還要檢查文件狀態(tài)或是數(shù)字測試?;谶@些測試才能做進(jìn)一步動作。 Test命令用于測試字符串,文件狀態(tài)和數(shù)字,也很適合提到的if、then、else條件結(jié)構(gòu)。本章內(nèi)容有: 對文件、字符串和數(shù)字使用test命令。 對數(shù)字和字符串使用expr命令。一expr命令測試和執(zhí)行數(shù)值輸出。使用最后示正確, 1表示返回錯誤。狀態(tài)命令 $?可測知test和expr,二者均以0表17.1測試文件狀態(tài)test一般有兩種格式,即:test condition 或condition使用方括號時,要注意在條件兩邊加上空格。測試文件狀態(tài)的條件表很多,但是最常用的可在表
2、17-1中查到。表17-1 文件狀態(tài)測試使用兩種方法測試文件scores.txt是否可寫并用最后,其他為失敗。狀態(tài)測試是否。記住, 0表示兩種狀態(tài)均返回0,可知文件scores.txt可寫,現(xiàn)在測試其是否可執(zhí)行:查看文件scores.txt權(quán)限列表,可知結(jié)果正如所料。下面的例子測試是否存在appsbin目錄-d目錄-f正規(guī)文件-L符號連接-r可讀-s文件長度大于0、非空-w可寫-u文件有suid位設(shè)置-x可執(zhí)行第17章 條 件 測 試155目錄appsbin果然存在。測試文件權(quán)限是否設(shè)置了suid位從結(jié)果知道suid位已設(shè)置。17.2 測試時使用邏輯操作符測試文件狀態(tài)是否為OK,但是有時要比較
3、兩個文件狀態(tài)。 shell提供三種邏輯操作完成此功能。-a 邏輯與,操作符兩邊均為真,結(jié)果為真,否則為假。-o 邏輯或,操作符兩邊一邊為真,結(jié)果為真,否則為假。! 邏輯否,條件為假,結(jié)果為真。下面比較兩個文件:下面的例子測試兩個文件是否均可讀。結(jié)果為真。要測試其中一個是否可執(zhí)行,使用邏輯或操作。scores.txt不可執(zhí)行,但results.txt可執(zhí)行。要測試文件results.txt是否可寫、可執(zhí)行:結(jié)果為真。17.3 字符串測試字符串測試是錯誤捕獲很重要的一部分,特別在測試用戶輸入或比較變量時尤為重要。字符串測試有5種格式。156第四部分 基礎(chǔ)shell編程這里,string_opera
4、tor可為:=兩個字符串相等。!= 兩個字符串不等。-z空串。-n非空串。要測試環(huán)境變量EDITOR是否為空:非空,取值是否是vi?是的,用echo命令反饋其值:測試變量tape與變量tape2是否相等:不相等。沒有規(guī)定在設(shè)置變量時一定要測試變量tape與tape2是否不相等。引號,但在進(jìn)行字符串比較時必須這樣做。是的,它們不相等。17.4測試數(shù)值測試數(shù)值可以使用許多操作符,一般格式如下:"number"numeric_operator"number" 或者"number"numeric_operator"number&qu
5、ot;numeric_operator可為:-eq-ne-gt-lt數(shù)值相等。 數(shù)值不相等。第一個數(shù)大于第二個數(shù)。第一個數(shù)小于第二個數(shù)。-le 第一個數(shù)小于等于第二個數(shù)。-ge 第一個數(shù)大于等于第二個數(shù)。下面的例子返回結(jié)果都一樣。均為測試兩個數(shù)是否相等( 130是否等于130)。第17章 條 件 測 試157結(jié)果果然正確。改變第二個數(shù),結(jié)果返回失敗,狀態(tài) 1(130不等于200)測試130是否大于100:當(dāng)然。也可以測試兩個整數(shù)變量。下面測試變量 source_count是否小于dest_count:可以不必將整數(shù)值放入變量,直接用數(shù)字比較即可,但要加引號??梢杂眠壿嫴僮鞣麑蓚€測試表結(jié)合起來
6、。僅需要用到一對方括號,而不能用兩個,否則將返回錯誤信息“ too many arguments”。下面例子測試兩個表,如果,結(jié)果為真,正確使用方式應(yīng)為:17.5 expr用法expr命令一般用于整數(shù)值,但也可用于字符串。一般格式為:expr argument operator argument expr也是一個手工命令行計(jì)數(shù)器。使用乘號時,必須用反斜線其特定含義。因?yàn)?shell可能會誤解顯示星號的意義。158第四部分 基礎(chǔ)shell編程17.5.1 增量計(jì)數(shù)expr在循環(huán)中用于增量計(jì)算。首先,循環(huán)初始化為 0,然后循環(huán)值加 1,反引號的用法意即替代命令。最基本的一種是從( expr)命令接
7、受輸出并將之放入循環(huán)變量。17.5.2 數(shù)值測試可以用expr測試一個數(shù)。如果試圖計(jì)算非整數(shù),將返回錯誤。這里需要將一個值賦予變量(不管其內(nèi)容如何),進(jìn)行數(shù)值運(yùn)算,并將輸出導(dǎo)入 dev/null,然后測試最后命令狀態(tài),如果為 0,證明這是一個數(shù),其他則表明為非數(shù)值。這是一個數(shù)。這是一個非數(shù)值字符。expr也可以返回其本身的狀態(tài),不幸的是返回值最后命令剛好相反,成功返回1,任何其他值為無效或錯誤。下面的例子測試兩個字符串是否相等,這里字符串為“hello”和“hello”。expr返回1。不要了,這表明?,F(xiàn)在檢驗(yàn)其最后狀態(tài),返回 0表示測試,“hello”確實(shí)等于“ hello”。17.5.3 模式匹配expr也有模式匹配功能??梢允褂?expr通過指定冒號選項(xiàng)計(jì)算字符串中字符數(shù)。 .*意即任何字符重復(fù)0次或多次。在expr中可以使用字符串匹配操作,這里使用模式 .doc抽取
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋維修合同范本(6篇)
- 某學(xué)校外墻裝飾改造施工組織設(shè)計(jì)
- 石河子大學(xué)《網(wǎng)絡(luò)安全技術(shù)及應(yīng)用》2023-2024學(xué)年期末試卷
- 石河子大學(xué)《軟件體系結(jié)構(gòu)》2021-2022學(xué)年期末試卷
- 石河子大學(xué)《電工學(xué)實(shí)驗(yàn)》2021-2022學(xué)年期末試卷
- 沈陽理工大學(xué)《現(xiàn)代控制理論》2023-2024學(xué)年期末試卷
- 沈陽理工大學(xué)《汽車制造工藝學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《計(jì)算機(jī)網(wǎng)絡(luò)》2022-2023學(xué)年期末試卷
- 肝癌靶向聯(lián)合免疫治療
- 沈陽理工大學(xué)《功能高分子》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年西安陜鼓動力股份有限公司招聘筆試沖刺題(帶答案解析)
- MOOC 行政管理學(xué)-西北大學(xué) 中國大學(xué)慕課答案
- 刮痧治療糖尿病
- 藝術(shù)中國智慧樹知到期末考試答案2024年
- (新人教版)高中英語必修第三冊全冊分單元教材解讀(共5個單元)
- 2024年江蘇揚(yáng)州市邗江區(qū)邗糧農(nóng)業(yè)發(fā)展有限公司招聘筆試參考題庫含答案解析
- 四川省公需科目2024年度數(shù)字經(jīng)濟(jì)與驅(qū)動發(fā)展考試題庫及答案
- 可持續(xù)建筑技術(shù)B智慧樹知到期末考試答案2024年
- (2024年)診療規(guī)范培訓(xùn)課件
- 音樂教學(xué)數(shù)字化設(shè)計(jì)方案
- 小班美術(shù)《好吃的魚》課件
評論
0/150
提交評論