




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、聯(lián)系方式:http:/北京源智天下科技有限公司第第4講講 shell編程編程演講人:馬玉軍演講人:馬玉軍 e-mail:1-2北京源智天下科技有限公司聯(lián)系方式:http:/課程安排課程安排bash的使用的使用Shell程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu)局部變量局部變量環(huán)境變量環(huán)境變量shell的運(yùn)算符的運(yùn)算符輸入和輸出輸入和輸出引號的使用方法引號的使用方法測試語句測試語句流程控制結(jié)構(gòu)流程控制結(jié)構(gòu)綜合練習(xí)綜合練習(xí)1-3北京源智天下科技有限公司聯(lián)系方式:http:/bash的使用的使用在在Linux操作系統(tǒng)中有多種操作系統(tǒng)中有多種Shell可供使用,在可供使用,在Red Hat Linux 9.0中默認(rèn)
2、使用的中默認(rèn)使用的shell是是bash。用戶成功登錄系統(tǒng)后,。用戶成功登錄系統(tǒng)后,shell將成為用戶與系統(tǒng)內(nèi)核進(jìn)行交互的橋梁,直至用將成為用戶與系統(tǒng)內(nèi)核進(jìn)行交互的橋梁,直至用戶退出系統(tǒng)。戶退出系統(tǒng)。Linux系統(tǒng)中所有用戶都有一個(gè)缺省的系統(tǒng)中所有用戶都有一個(gè)缺省的shell。用戶的缺省。用戶的缺省shell在系統(tǒng)的在系統(tǒng)的/etc/passwd文件中指定文件中指定bash的內(nèi)部命令與外部命令:內(nèi)部命令在的內(nèi)部命令與外部命令:內(nèi)部命令在shell啟動(dòng)時(shí)就調(diào)入內(nèi)存,是常駐內(nèi)存的。啟動(dòng)時(shí)就調(diào)入內(nèi)存,是常駐內(nèi)存的。外部命令在使用時(shí)才從硬盤中讀入內(nèi)存。外部命令的查找路徑由環(huán)境變量外部命令在使用時(shí)才從
3、硬盤中讀入內(nèi)存。外部命令的查找路徑由環(huán)境變量PATH定義。定義。命令補(bǔ)齊功能:命令補(bǔ)齊可以自動(dòng)補(bǔ)齊沒有輸入完整的命令。命令補(bǔ)齊功能:命令補(bǔ)齊可以自動(dòng)補(bǔ)齊沒有輸入完整的命令?!癟ab”鍵激活命令補(bǔ)齊鍵激活命令補(bǔ)齊功能。支持命令和目錄或文件的自動(dòng)補(bǔ)齊。功能。支持命令和目錄或文件的自動(dòng)補(bǔ)齊。命令通配符:通配符命令通配符:通配符,是可以在命令中用一個(gè)字符來代替一系列字符或字符串是可以在命令中用一個(gè)字符來代替一系列字符或字符串 ?:匹配任意一個(gè)字符。例如,?abc,可以匹配任何以abc結(jié)束,并且以任意字符開頭的含有四個(gè)字符的字符串。 .:匹配括號里列出的任何單字符。比如abcdef,可以匹配以abc開頭
4、,以def中任意一個(gè)字符結(jié)尾的字符串。 *:匹配任何字符和字符串,包括空字符串。歷史命令:上下箭頭鍵及回車鍵的使用。歷史命令:上下箭頭鍵及回車鍵的使用。history命令和命令和fc命令的使用。命令的使用。命令的別名:指的是自定義一個(gè)命令代替其它命令,縮寫命令,減少輸入。命令的別名:指的是自定義一個(gè)命令代替其它命令,縮寫命令,減少輸入。alias和和unalias命令的使用。例如:命令的使用。例如: alias lsc=ls *.c unalias lsc1-4北京源智天下科技有限公司聯(lián)系方式:http:/Shell程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu)Shell程序就是將一系列的程序就是將一系列的Li
5、nux程序通過流程控制寫在一個(gè)文本文件中,程序通過流程控制寫在一個(gè)文本文件中,由由shell讀取此文本文件并且依次執(zhí)行文件中的這些程序。讀取此文本文件并且依次執(zhí)行文件中的這些程序。下面是一個(gè)簡單的下面是一個(gè)簡單的shell程序程序test.sh:01#!/bin/bash02#hello #注意:注意:#后面的內(nèi)容是后面的內(nèi)容是shell程序的注釋。程序的注釋。03echo hello Linux#打印字符串到終端打印字符串到終端04echo this is a shell file.添加執(zhí)行權(quán)限:添加執(zhí)行權(quán)限:chmod +x a.sh執(zhí)行執(zhí)行shell程序:程序:./a.shshell程序
6、的基本特征:程序的基本特征:(1)所有的)所有的shell程序第一行都是以程序第一行都是以#!開頭。后面跟上執(zhí)行此開頭。后面跟上執(zhí)行此shell程程序的序的shell解釋器完整路徑。解釋器完整路徑。(2)習(xí)慣在程序的第)習(xí)慣在程序的第2行以注釋的方式寫出程序的名稱。行以注釋的方式寫出程序的名稱。(3)最簡單的)最簡單的shell程序就是一組程序就是一組shell命令的堆砌命令的堆砌(4)shell程序是普通文本文件,添加可執(zhí)行權(quán)限后才可以執(zhí)行。程序是普通文本文件,添加可執(zhí)行權(quán)限后才可以執(zhí)行。1-5北京源智天下科技有限公司聯(lián)系方式:http:/局部變量局部變量Shell程序中需要用變量來存儲程序
7、的數(shù)據(jù)。程序中需要用變量來存儲程序的數(shù)據(jù)。Shell中的變量中的變量可分為局部變量、環(huán)境變量、位置變量三種。本節(jié)講述可分為局部變量、環(huán)境變量、位置變量三種。本節(jié)講述shell程序中變量的使用方法。程序中變量的使用方法。Shell語言是一種解釋型語言,它與語言是一種解釋型語言,它與C或或Java語言不同,語言不同,編程時(shí)無需事先聲明變量。當(dāng)對一個(gè)變量進(jìn)行賦值時(shí),也編程時(shí)無需事先聲明變量。當(dāng)對一個(gè)變量進(jìn)行賦值時(shí),也就定義了變量。局部變量指的是只在當(dāng)前的進(jìn)程和程序中就定義了變量。局部變量指的是只在當(dāng)前的進(jìn)程和程序中有效的變量。有效的變量。shell程序的變量是無數(shù)據(jù)類型的,可以使用同一個(gè)變量程序的變
8、量是無數(shù)據(jù)類型的,可以使用同一個(gè)變量存放不同數(shù)據(jù)類型的值。變量賦值之后,只需在變量前面存放不同數(shù)據(jù)類型的值。變量賦值之后,只需在變量前面加一個(gè)加一個(gè)$符號即可訪問變量的值。可以用賦值符號符號即可訪問變量的值??梢杂觅x值符號(=)為變?yōu)樽兞抠x值。變量的值如果是不帶空格的字符串,則可以不加量賦值。變量的值如果是不帶空格的字符串,則可以不加引號。變量輸出使用的命令是引號。變量輸出使用的命令是echo。1-6北京源智天下科技有限公司聯(lián)系方式:http:/局部變量局部變量【范例范例4-1】shell腳本中變量的定義與賦值。腳本中變量的定義與賦值。01 #!/bin/bash02 #bianliang 4
9、.1.sh03 a=123#直接為變量賦值直接為變量賦值04 b=1.2305 c=xyz06 d=efgh xyz07 e=efgh xyz08 echo $a#打印變量的值打印變量的值09 echo $b10 echo $c11 echo $d12 echo $e1-7北京源智天下科技有限公司聯(lián)系方式:http:/環(huán)境變量環(huán)境變量環(huán)境變量是在一個(gè)用戶的所有進(jìn)程中都可以訪問的變量。系統(tǒng)中常環(huán)境變量是在一個(gè)用戶的所有進(jìn)程中都可以訪問的變量。系統(tǒng)中常常使用環(huán)境變量來存儲常用的信息。常使用環(huán)境變量來存儲常用的信息。使用使用export命令可以查看系統(tǒng)的環(huán)境變量列表。命令可以查看系統(tǒng)的環(huán)境變量列表。
10、環(huán)境變量的訪問:需要在一個(gè)環(huán)境變量的前面加一個(gè)環(huán)境變量的訪問:需要在一個(gè)環(huán)境變量的前面加一個(gè)$符號符號環(huán)境變量的定義:使用環(huán)境變量的定義:使用export命令定義環(huán)境變量。環(huán)境變的名稱命令定義環(huán)境變量。環(huán)境變的名稱一般都是大寫的。一般都是大寫的。export XX=1234echo $XX 在系統(tǒng)配置文件中定義環(huán)境變量在系統(tǒng)配置文件中定義環(huán)境變量 :上面定義的環(huán)境變量,只在當(dāng):上面定義的環(huán)境變量,只在當(dāng)前前shell中運(yùn)行的所有進(jìn)程中有效。系統(tǒng)重啟后失效。可以在系統(tǒng)中運(yùn)行的所有進(jìn)程中有效。系統(tǒng)重啟后失效??梢栽谙到y(tǒng)配置中加入這些環(huán)境變量的定義。在環(huán)境變量配置文件配置中加入這些環(huán)境變量的定義。在
11、環(huán)境變量配置文件/etc/profile中定義兩個(gè)環(huán)境變量中定義兩個(gè)環(huán)境變量:export A1=helloexport A2=123451-8北京源智天下科技有限公司聯(lián)系方式:http:/環(huán)境變量環(huán)境變量位置變量:是位置變量:是shell程序在運(yùn)行時(shí)傳入的參數(shù)。程序中可以用變量的程序在運(yùn)行時(shí)傳入的參數(shù)。程序中可以用變量的形式來調(diào)用這些參數(shù)。這些參數(shù)被存放在形式來調(diào)用這些參數(shù)。這些參數(shù)被存放在1到到9的的9個(gè)特殊變量名中個(gè)特殊變量名中,被形象的稱為位置變量。同普通變量一樣,位置變量用,被形象的稱為位置變量。同普通變量一樣,位置變量用$前綴加前綴加數(shù)字來表示。例如,第數(shù)字來表示。例如,第5個(gè)參數(shù)
12、,表示為個(gè)參數(shù),表示為$5。 【范例范例4-2】輸出輸出shell中的位置變量。中的位置變量。01 #!/bin/bash02 #4.2.sh;03 echo $1;04 echo $2;05 echo $3;06 echo $4;1-9北京源智天下科技有限公司聯(lián)系方式:http:/shell的運(yùn)算符Shell中的運(yùn)算符可以實(shí)現(xiàn)變量的賦值、算術(shù)運(yùn)算、測試、比較等功能,運(yùn)算中的運(yùn)算符可以實(shí)現(xiàn)變量的賦值、算術(shù)運(yùn)算、測試、比較等功能,運(yùn)算符是構(gòu)成表達(dá)式的基礎(chǔ)。符是構(gòu)成表達(dá)式的基礎(chǔ)。變量賦值:變量賦值:shell中使用中使用“=”進(jìn)行變量賦值,也可以用等號來改變或初值化進(jìn)行變量賦值,也可以用等號來改變
13、或初值化一個(gè)變量的值。在進(jìn)行賦值時(shí)不用考慮變量的數(shù)據(jù)類型,這是一個(gè)變量的值。在進(jìn)行賦值時(shí)不用考慮變量的數(shù)據(jù)類型,這是shell中變量中變量數(shù)據(jù)類型的特點(diǎn)決定的。數(shù)據(jù)類型的特點(diǎn)決定的。 例如:例如:STR=123echo $STR算術(shù)運(yùn)算符:是可以在程序中實(shí)現(xiàn)加、減、乘、除等數(shù)學(xué)運(yùn)算的運(yùn)算符。算術(shù)運(yùn)算符:是可以在程序中實(shí)現(xiàn)加、減、乘、除等數(shù)學(xué)運(yùn)算的運(yùn)算符。Shell中常用的數(shù)學(xué)運(yùn)算符如下所示。中常用的數(shù)學(xué)運(yùn)算符如下所示。+ +:對兩個(gè)變量做加法。:對兩個(gè)變量做加法。- -:對兩個(gè)變量做減法。:對兩個(gè)變量做減法。* *:對兩個(gè)變量做乘法。:對兩個(gè)變量做乘法。/ /:對兩個(gè)變量做除法。:對兩個(gè)變量做
14、除法。* * *:對兩個(gè)變量做冪運(yùn)算。:對兩個(gè)變量做冪運(yùn)算。% %:取模運(yùn)算,第一個(gè)變量除以第二個(gè)變量求余數(shù)。:取模運(yùn)算,第一個(gè)變量除以第二個(gè)變量求余數(shù)。+=+=:加等于,在自身基礎(chǔ)上加第二個(gè)變量。:加等于,在自身基礎(chǔ)上加第二個(gè)變量。-=-=:減等于,在第一個(gè)變量的基礎(chǔ)上減去第二個(gè)變量。:減等于,在第一個(gè)變量的基礎(chǔ)上減去第二個(gè)變量。* *= =:乘等于,在第一個(gè)變量的基礎(chǔ)上乘以第二個(gè)變量。:乘等于,在第一個(gè)變量的基礎(chǔ)上乘以第二個(gè)變量。/=/=:除等于,在第一個(gè)變量的基礎(chǔ)上除以第二個(gè)變量。:除等于,在第一個(gè)變量的基礎(chǔ)上除以第二個(gè)變量。%=%=:取模賦值,第一個(gè)變量對第二個(gè)變量取模運(yùn)算,再賦值給第
15、一個(gè)變量:取模賦值,第一個(gè)變量對第二個(gè)變量取模運(yùn)算,再賦值給第一個(gè)變量。1-10北京源智天下科技有限公司聯(lián)系方式:http:/shell的運(yùn)算符【范例范例4-3】用用shell腳本進(jìn)行數(shù)學(xué)運(yùn)算實(shí)例。腳本進(jìn)行數(shù)學(xué)運(yùn)算實(shí)例。01 #!/bin/bash02 #4.3.sh03 s=0#定義一個(gè)求和變量,初值為定義一個(gè)求和變量,初值為0。04 t=expr $1*$2#用用expr改變運(yùn)算順序,求改變運(yùn)算順序,求x的的y次方。次方。05 t=$t*3#t乘以乘以3。06 s=$s+t#結(jié)果相加。結(jié)果相加。07 t=$1*2#求求x的平方。的平方。08 t=$t*4#結(jié)果乘以結(jié)果乘以4。09 s=$s
16、+t#結(jié)果相加。結(jié)果相加。10 t=expr $2*5#求求5y的值。的值。11 s=$s+t#結(jié)果相加。結(jié)果相加。12 s=$s+6#結(jié)果加上結(jié)果加上6。13 echo $s#輸出結(jié)果。輸出結(jié)果。1-11北京源智天下科技有限公司聯(lián)系方式:http:/輸入和輸出輸入和輸出輸入指的是輸入指的是shell程序讀入數(shù)據(jù)。有從文件讀取、從用戶輸程序讀入數(shù)據(jù)。有從文件讀取、從用戶輸入讀取等方式讀入數(shù)據(jù)。輸出指的是入讀取等方式讀入數(shù)據(jù)。輸出指的是shell程序的運(yùn)行結(jié)程序的運(yùn)行結(jié)果的處理,可以顯示到屏幕或保存到文件。果的處理,可以顯示到屏幕或保存到文件。 echo命令輸出結(jié)果:命令輸出結(jié)果:echo命令可
17、以輸出文本或變量的值命令可以輸出文本或變量的值,是,是shell中最常用的輸出方式。結(jié)果可以輸出到終端,中最常用的輸出方式。結(jié)果可以輸出到終端,也可以寫入到文件。也可以寫入到文件。 例如:例如:echo $str#將結(jié)果輸出到終端。echo $str file#將結(jié)果保存到文件file中,如果沒有文件會新建一個(gè)文件。如果已經(jīng)有文件則會覆蓋以前的文件。echo $str file#將結(jié)果追加到文件file中。echo輸出的內(nèi)容可以有下面的格式控制字符。輸出的內(nèi)容可以有下面的格式控制字符。c:末尾加上c表示這一行輸出完畢以后不換行。t:輸出一個(gè)跳格,相當(dāng)于按下“Tab”鍵。n:輸出一個(gè)換行。1-1
18、2北京源智天下科技有限公司聯(lián)系方式:http:/輸入和輸出輸入和輸出read命令讀取信息:可以從鍵盤或文件中讀入信息,并賦給命令讀取信息:可以從鍵盤或文件中讀入信息,并賦給一個(gè)變量。讀取信息的方法如下:一個(gè)變量。讀取信息的方法如下:如果只讀入一個(gè)變量,會把鍵盤上輸入的作有信息賦如果只讀入一個(gè)變量,會把鍵盤上輸入的作有信息賦值給這個(gè)變量。按值給這個(gè)變量。按“Enter”鍵結(jié)束輸入。鍵結(jié)束輸入。如果輸入多個(gè)變量,用空格鍵將輸入的變量隔開。如如果輸入多個(gè)變量,用空格鍵將輸入的變量隔開。如果輸入變量的個(gè)數(shù)多于需要讀取變量的個(gè)數(shù),將會把剩余果輸入變量的個(gè)數(shù)多于需要讀取變量的個(gè)數(shù),將會把剩余的變量賦值給最
19、后一個(gè)變量。的變量賦值給最后一個(gè)變量。在讀取語句后面添加在讀取語句后面添加,表示從文件中讀取數(shù)據(jù),并且,表示從文件中讀取數(shù)據(jù),并且賦值給變量。賦值給變量。演示演示read命令的使用命令的使用1-13北京源智天下科技有限公司聯(lián)系方式:http:/輸入和輸出輸入和輸出文件重定向:在執(zhí)行命令時(shí)指定命令的輸入、輸出和錯(cuò)誤的文件重定向:在執(zhí)行命令時(shí)指定命令的輸入、輸出和錯(cuò)誤的輸出和輸入方式。例如,可以命令的結(jié)果輸出到一個(gè)文件輸出和輸入方式。例如,可以命令的結(jié)果輸出到一個(gè)文件中。中。演示重定向演示重定向1-14北京源智天下科技有限公司聯(lián)系方式:http:/引號的使用方法引號的使用方法Shell程序中的單引
20、號、雙引號、反引號、反斜線在命令中有特殊含程序中的單引號、雙引號、反引號、反斜線在命令中有特殊含義。義。 雙引號表示引用一個(gè)字符串。字符串里不能直接使用雙引號表示引用一個(gè)字符串。字符串里不能直接使用$、引號、雙、引號、雙引號、反斜線、反引號這些特殊符號。如果字符串里沒有空格,引號、反斜線、反引號這些特殊符號。如果字符串里沒有空格,使用雙引號將賦值的字符串引起來,和不使用雙引號效果是一樣使用雙引號將賦值的字符串引起來,和不使用雙引號效果是一樣的。當(dāng)字符串中有空格時(shí),用雙引號表示引號中的內(nèi)容為一個(gè)字的。當(dāng)字符串中有空格時(shí),用雙引號表示引號中的內(nèi)容為一個(gè)字符串。符串。 單引號表示引用一個(gè)字符串,用法
21、和雙引號是相似的。如果雙號單引號表示引用一個(gè)字符串,用法和雙引號是相似的。如果雙號號中再使用單引號,則輸出時(shí)會輸出這個(gè)單引號。號中再使用單引號,則輸出時(shí)會輸出這個(gè)單引號。反引號用于執(zhí)行引號中的系統(tǒng)命令,然后將命令的結(jié)果返回。這反引號用于執(zhí)行引號中的系統(tǒng)命令,然后將命令的結(jié)果返回。這個(gè)返回的結(jié)果可以賦值給一個(gè)變量。個(gè)返回的結(jié)果可以賦值給一個(gè)變量。反斜線用于對特殊字符進(jìn)行轉(zhuǎn)義。如果字符串中含有反斜線用于對特殊字符進(jìn)行轉(zhuǎn)義。如果字符串中含有&、*、+、$、|、?這些含有特殊符串,這些含有特殊符串,shell會認(rèn)為這些符串代表著會認(rèn)為這些符串代表著相應(yīng)的運(yùn)算。可以使用反斜線對這些符串進(jìn)行轉(zhuǎn)義。
22、相應(yīng)的運(yùn)算??梢允褂梅葱本€對這些符串進(jìn)行轉(zhuǎn)義。 演示引號的使用方法演示引號的使用方法 1-15北京源智天下科技有限公司聯(lián)系方式:http:/測試語句測試語句這里所說的測試是對變量的大小、字符串、文件屬性等內(nèi)容這里所說的測試是對變量的大小、字符串、文件屬性等內(nèi)容進(jìn)行判斷。進(jìn)行判斷。test命令可以用于字符串、數(shù)字、文件狀態(tài)等內(nèi)容的測試。命令可以用于字符串、數(shù)字、文件狀態(tài)等內(nèi)容的測試。文件狀態(tài)測試:指的是對文件的權(quán)限、有無、屬性、類型文件狀態(tài)測試:指的是對文件的權(quán)限、有無、屬性、類型等內(nèi)容進(jìn)行判斷。與其他語言不同的是,等內(nèi)容進(jìn)行判斷。與其他語言不同的是,test命令的測試命令的測試結(jié)果,返回結(jié)果,
23、返回0時(shí)表示測試成功。返回時(shí)表示測試成功。返回1時(shí)表示測試失敗時(shí)表示測試失敗1-16北京源智天下科技有限公司聯(lián)系方式:http:/測試語句測試語句數(shù)值測試:指的是比較兩個(gè)數(shù)值的大小或相等關(guān)系,相當(dāng)數(shù)值測試:指的是比較兩個(gè)數(shù)值的大小或相等關(guān)系,相當(dāng)于于c語言中的比較運(yùn)算符。語言中的比較運(yùn)算符。shell程序中的數(shù)值測試有下面程序中的數(shù)值測試有下面兩種形式。兩種形式。1、test命令和相應(yīng)的參數(shù)可以對兩個(gè)數(shù)值的關(guān)系進(jìn)行測試,使用方法如命令和相應(yīng)的參數(shù)可以對兩個(gè)數(shù)值的關(guān)系進(jìn)行測試,使用方法如下所示。下所示。test 第一個(gè)操作數(shù) 數(shù)值比較符 第二個(gè)操作數(shù) 2、用中括號代替、用中括號代替test命令。
24、這種方法和命令。這種方法和test命令的原理相同,使用方法命令的原理相同,使用方法如下所示。如下所示。 第一個(gè)操作數(shù) 數(shù)值比較符 第二個(gè)操作數(shù) 1-17北京源智天下科技有限公司聯(lián)系方式:http:/測試語句測試語句邏輯測試指的是將多個(gè)條件進(jìn)行邏輯運(yùn)算,常用作循環(huán)語句或判斷邏輯測試指的是將多個(gè)條件進(jìn)行邏輯運(yùn)算,常用作循環(huán)語句或判斷語句的條件。語句的條件。shell程序中有下面三種邏輯測試。程序中有下面三種邏輯測試。-a:邏輯與,操作符兩邊均為真時(shí)結(jié)果為真,否則為結(jié)果為假。-o:邏輯或,操作符兩邊至少一個(gè)為真時(shí),結(jié)果為真,否則為假。! :邏輯否,只有條件為假時(shí),返回結(jié)果為真。1-18北京源智天下科
25、技有限公司聯(lián)系方式:http:/測試語句測試語句所謂字符串測試,指的是比較兩個(gè)字符串是否相等,或者判斷一個(gè)所謂字符串測試,指的是比較兩個(gè)字符串是否相等,或者判斷一個(gè)字符串是否為空。這種判斷常用來測試用戶輸入是否符合程序的要字符串是否為空。這種判斷常用來測試用戶輸入是否符合程序的要求。字符串測試有下面求。字符串測試有下面4中常用的方法。中常用的方法。test字符串比較符 字符串test 字符串1 字符串比較符 字符串2 字符串比較符 字符串 字符串1 字符串比較符 字符串2 字符串比較符有如下所示的字符串比較符有如下所示的4種。種。=:測試兩個(gè)字符串是否相等。!=:測試兩個(gè)字符串是否不相等。-z
26、:測試字符串是空字符串。-n:測試字符串是非空字符串。1-19北京源智天下科技有限公司聯(lián)系方式:http:/流程控制結(jié)構(gòu)流程控制結(jié)構(gòu)所謂流程控制,指的是使用邏輯判斷,針對判斷的結(jié)果執(zhí)行不同語句或所謂流程控制,指的是使用邏輯判斷,針對判斷的結(jié)果執(zhí)行不同語句或不同的程序部分。這種結(jié)構(gòu)是所有編程語言的重要組成部分。不同的程序部分。這種結(jié)構(gòu)是所有編程語言的重要組成部分。shell中流程控制結(jié)構(gòu),實(shí)際上是使用中流程控制結(jié)構(gòu),實(shí)際上是使用shell的內(nèi)部命令來實(shí)現(xiàn)的。使用的內(nèi)部命令來實(shí)現(xiàn)的。使用方法與其它編程語言中流程控制語句類似。方法與其它編程語言中流程控制語句類似。 if語句語句:最常用的條件判斷語句
27、,是通過一個(gè)條件的真假來決定后面:最常用的條件判斷語句,是通過一個(gè)條件的真假來決定后面的語句是不是執(zhí)行。的語句是不是執(zhí)行。 1-20北京源智天下科技有限公司聯(lián)系方式:http:/流程控制結(jié)構(gòu)流程控制結(jié)構(gòu)【范例范例4-4】shell腳本中使用腳本中使用if語句進(jìn)行條件判斷。語句進(jìn)行條件判斷。01 #!/bin/bash02 #4.4.sh03 i=$ $1 % 2 04 if test $i -eq 0 ; then05 echo oushu06 else07 echo jishu08 fi【范例范例4-5】if語句判斷文件是否語句判斷文件是否可寫。可寫。01 #!/bin/bash02 #4.
28、5.sh03 if test -w $1#判斷文件是否可寫。04 then echo writeable05 else06 echo unwriteable#不可寫時(shí)的輸出07 fi#fi結(jié)束if語句。08 if test -x $1#判斷文件是否可以執(zhí)行。09 then echo excuteable10 else11 echo unexcuteable#不可執(zhí)行時(shí)輸出12 fi 1-21北京源智天下科技有限公司聯(lián)系方式:http:/流程控制結(jié)構(gòu)流程控制結(jié)構(gòu)【范例范例4-6】用用if語句判斷輸入的文件是否可寫。語句判斷輸入的文件是否可寫。01 #!/bin/bash02 #4.6.sh03
29、if test -z $1 #測試是否輸入了文件名。04 then echo please input a #沒有輸出文件名則輸出提示。05 else#有文件名的情況。06 if test -w $1#測試文件是否可寫。07 then echo writeable08 else#不可寫的輸出。09 echo unwriteable10 fi11 if test -x $1#測試文件是否可以執(zhí)行。12 then echo excuteable13 else14 echo unexcuteable#不能執(zhí)行時(shí)的輸出。15 if16 fi 1-22北京源智天下科技有限公司聯(lián)系方式:http:/流程控
30、制結(jié)構(gòu)流程控制結(jié)構(gòu)for語句是一種常用的循環(huán)語句,實(shí)現(xiàn)在一個(gè)值列表中的語句是一種常用的循環(huán)語句,實(shí)現(xiàn)在一個(gè)值列表中的循環(huán)功能。下面是循環(huán)功能。下面是for語句的使用方法。語句的使用方法。 1-23北京源智天下科技有限公司聯(lián)系方式:http:/流程控制結(jié)構(gòu)流程控制結(jié)構(gòu)【范例范例4-7】使用使用for循環(huán)語句輸出字循環(huán)語句輸出字符列表中的字符。符列表中的字符。01 #!/bin/bash02 #4.7.sh for03 for char in a s d f g #開始for循環(huán)。04 do#循環(huán)體。05 echo $char06 done#結(jié)束for循環(huán)【范例范例4-7】使用使用for循環(huán)語句輸
31、出所循環(huán)語句輸出所有的命令行參數(shù)。有的命令行參數(shù)。01 #!/bin/bash02 #4.8.sh for03 for str#開始for循環(huán)。04 do#循環(huán)體。05 echo $str06 done 1-24北京源智天下科技有限公司聯(lián)系方式:http:/流程控制結(jié)構(gòu)流程控制結(jié)構(gòu)【范例范例4-9】使用使用for循環(huán)語句復(fù)制指定類型的文件。循環(huán)語句復(fù)制指定類型的文件。 01 #!/bin/bash02 #4.9.sh for 03 FILES=ls *.sh#ls *.sh瀏覽文件夾中所有的.sh文件,將結(jié)果存放在FILES中。 0405 for sh in $FILES#開始for循環(huán)。06 do07 txt=echo $sh | sed s/.sh/.txt/#用替換的方法處理文件名08 cp $sh $txt#復(fù)制文件。09 echo $txt#輸出已經(jīng)復(fù)制的文件名。10 done 1-25北京源智天下科技有限公司聯(lián)系方式:http:/流程控制結(jié)構(gòu)流程控制結(jié)構(gòu)【范例范例4-10】使用使用for循環(huán)語句的嵌套應(yīng)用實(shí)現(xiàn)輸出乘法口訣表。循環(huán)語句的嵌套應(yīng)用實(shí)現(xiàn)輸出乘法口訣表。01 #!/bi
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 肉類加工中的低溫加工技術(shù)研究考核試卷
- 肉類副產(chǎn)品在營養(yǎng)強(qiáng)化食品中的應(yīng)用研究考核試卷
- 磷肥生產(chǎn)技術(shù)基礎(chǔ)考核試卷
- 軟件測試工具應(yīng)用試題及答案回顧
- 計(jì)算機(jī)三級嵌入式課程體系設(shè)計(jì)試題及答案
- 深入理解行政組織理論的試題及答案
- 精心準(zhǔn)備公路工程執(zhí)照考試的試題及答案
- 賓館房間裝修管理制度
- 學(xué)校家長宿舍管理制度
- 客運(yùn)企業(yè)衛(wèi)生管理制度
- 印刷企業(yè)安全生產(chǎn)檢查表
- 工程變更矩陣圖
- 能源費(fèi)用托管型合同能源管理項(xiàng)目
- 2021-2022學(xué)年重慶市沙坪壩區(qū)八年級(下)期末語文試卷(解析版)2021
- 靜配中心基礎(chǔ)知識課件
- 水閘施工規(guī)范SL 27-2014
- 南非介紹課件
- 2023年安全生產(chǎn)月電力安全生產(chǎn)培訓(xùn)PPT鑄安全文化之魂守安全發(fā)展之基PPT課件(帶內(nèi)容)
- SQL必知必會(第5版)
- -裝飾裝修工程技術(shù)標(biāo)
- 暖通空調(diào)文獻(xiàn)翻譯
評論
0/150
提交評論