linux基礎15shell編程分支語句_第1頁
linux基礎15shell編程分支語句_第2頁
linux基礎15shell編程分支語句_第3頁
linux基礎15shell編程分支語句_第4頁
linux基礎15shell編程分支語句_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

shell編程-分支語句主講:小美老師課程目錄條件語句多路分支語句4結構性語句結構性語句主要根據程序的運行狀態(tài)、輸入數據、變量的取值、控制信號以及運行時間等因素來控制程序的運行流程。主要包括:條件測試語句(兩路分支)、多路分支語句、循環(huán)語句、循環(huán)控制語句和后臺執(zhí)行語句等。5條件語句if…then…fi語法結構:if表達式 then命令表fi

如果表達式為真,則執(zhí)行命令表中的命令;否則退出if語句,即執(zhí)行fi后面的語句。if和fi是條件語句的語句括號,必須成對使用;命令表中的命令可以是一條,也可以是若干條。6復習-文件測試-dname

測試name是否為一個目錄-ename

測試一個文件是否存在-fname

測試name是否為普通文件-Lname測試name是否為符號鏈接-rname

測試name文件是否存在且為可讀-wname

測試name文件是否存在且為可寫-xname

測試name文件是否存在且為可執(zhí)行-sname

測試name文件是否存在且其長度不為0f1-ntf2

測試文件f1是否比文件f2更新f1-otf2

測試文件f1是否比文件f2更舊7實例shell程序prog2.sh(測試命令行參數是否為已存在的文件或目錄)。用法為:./prog2.shfile代碼如下:#Thestatementofif…then…fi(注釋語句)if[-f$1](測試參數是否為文件)then echo"File$1exists"(引用變量值)fiif[-d$HOME/$1](測試參數是否為目錄)then echo"File$1isadirectory"(引用變量值)fi8實例執(zhí)行prog2程序:$./prog2.shprog1.shFileprog1.shexists

$0為prog2.sh;$1為prog1.sh,是一個已存在的文件.$./prog2.shbackupFilebackupisadirectory

$0為prog2.sh;$1為backup,是一個已存在的目錄.如果不帶參數,或大于一個參數運行prog2,例如:$./prog2.sh(或$./prog2.shfile1file2)會出現什么結果?9條件語句

if…then…else…fi語法結構為:if表達式then命令表1else命令表2fi如果表達式為真,則執(zhí)行命令表1中的命令,再退出if語句;否則執(zhí)行命令表2中的語句,再退出if語句.注意:無論表達式是否為真,都有語句要執(zhí)行.10test命令的使用test命令測試的條件成立時,命令返回值為真(0),否則返回值為假(非0).test$name-eq$1echo$?方式1iftest-f$filenamethen……fi方式2if[-f$filename]then……fi方式3用方括號替代test語句至少一個空格至少一個空格11實例例子:shell程序prog3.sh,用法為:./prog3.shfile內容如下:#Thestatementofif…then…else…fiif[-d$1]then echo"$1isadirectory" exit(退出當前的shell程序)else if[-f$1] then echo"$1isacommonfile" else echo"unknown" fifi12實例運行prog3.sh程序:$./prog3.shbackupbackupisadirectory$./prog3.shprog1prog1isacommonfile$./prog3.shabcunknownprog3.sh是對prog2.sh的優(yōu)化,邏輯結構更加清晰合理!13多路分支語句case…esac

多路分支語句case用于多重條件測試,語法結構清晰自然.其語法為:

case字符串變量in模式1)命令表1;;模式2|模式3)命令表2;;……模式n)命令表n;;esaccase語句只能檢測字符串變量各模式中可用文件名元字符,以右括號結束命令表以單獨的雙分號行結束,退出case語句模式n常寫為字符*表示所有其它模式最后一個雙分號行可以省略一次可以匹配多個模式用“|”分開14實例實例.程序prog4.sh檢查用戶輸入的文件名,用法為:./prog4.shstring_name#Thestatementofcase…esacif[$#-eq0]then echo"Noargumentisdeclared" exitficase$1in file1)

溫馨提示

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

評論

0/150

提交評論