版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Linux環(huán)境及開發(fā)工具應(yīng)用實踐環(huán)境及開發(fā)工具應(yīng)用實踐 -Linux shell編程編程1Company name目錄目錄1. shell 編程概述編程概述2. Shell的變量的變量3. Shell流程控制流程控制4. Shell的函數(shù)的函數(shù)Company name 什么是什么是 ShellCompany nameShell程序語言的特點程序語言的特點 Shell允許通過編程來完成復(fù)雜的功能處理,但其作為語言與高級語言比較具有不同的特點: Shell是解釋性的,多數(shù)高級語言是編譯性的; Shell語言與高級語言處理的對象不同; Shell與系統(tǒng)有密切的關(guān)系; Shell易編寫、調(diào)試、靈活性較
2、強; Shell作為命令級語言,命令組合功能很強。Company nameShell的版本的版本Shell 類別Shell 類別易學(xué)性易學(xué)性編輯編輯快捷快捷可移植性可移植性Bourne (sh)容易較差較差好Korn (ksh)較難好較好較好Bourne Again(bash)難好好較好POSIX (psh)較難好較好好C (csh)較難較好較好差TC (tcsh)難好好差Z (zsh)難好好差Shell有兩種主要語法類型:Bourne和C,彼此不兼容BourneBourne家族:sh ksh bash psh zsh C 家族:csh tcsh 其中:其中: bash和 zsh在不同程度上支
3、持 csh 的語法。常用常用Shell在交互式使用方面的比較在交互式使用方面的比較Company nameShell版本的選擇版本的選擇v各種shell的應(yīng)用:vSolaris和FreeBSD中是Bourne Shell。v在HP-UX中是POSIX Shell。v在Linux中是Bourn Again Shell。Company nameShell啟動的過程啟動的過程v Shell啟動時讀入下面兩個文件:v /etc/profilev .profilev 過程:v 1、Shell檢查文件/etc/profile是否存在。v 2、如果存在,則shell讀取其中信息。否則,略過該文件,不顯示錯誤
4、信息。v 3、shell檢查文件.profile是否在用戶起始目錄中。v 4、如果存在,則shell讀取該文件。否則,shell略過該文件,不顯示錯誤信息。v 5、這些文件被讀取后,shell顯示一個提示符。Company nameShell的特點的特點v 很多系統(tǒng)文件都是用shell語言編寫,如.profile,.login文件。v 把已有的命令進行適當組合,可以構(gòu)成新的命令,并且組合方式很簡單;v 可以進行交互式處理,用戶與系統(tǒng)之間通過shell進行會話;v 結(jié)構(gòu)化的程序模塊,提供了多種控制流程語句;v 靈活地利用位置參數(shù)傳遞參數(shù)值;v 提供通配符、輸入/輸出重定向、管道線等機制,便于模式
5、匹配、I/O處理和數(shù)據(jù)傳輸;v 便于用戶開發(fā)新的命令,利用shell過程可把用戶編寫的可執(zhí)行程序與UNIX命令結(jié)合在一起,作為新的命令使用;v 可以對環(huán)境進行控制,以滿足用戶的應(yīng)用需求;v 可以對數(shù)據(jù)和文件進行基本測試。Company nameShell的功能的功能v Shell不僅是一種命令解釋器,還是一種強大的語言,有類似ALGOl語言的編程語法。它包含如下特征:v 1、進程控制v 2、變量v 3、正則表達式v 4、流控制v 5、強大的輸入輸出控制v 6、函數(shù)Company nameShell編程編程v1. 如果Script的第一個非空白字符不是#,則它會使用Bourne Shell。 v
6、2. 如果Script的第一個非空白字符是#時,但不以#!開頭時,則它會使用C Shell。 v3. 如果Script以“#!”開頭,則“#!”后面所寫的就是所使用的Shell,而且要將整個路徑名稱指出來。 v這里建議使用第三種方式指定Shell ,以確保所執(zhí)行的就是所要的。Bourne Shell的路徑名稱為/bin/sh ,而C Shell 則為/bin/csh。 Company nameShell編程編程v執(zhí)行shell腳本的方式基本上有三種:v1、以腳本文件名作為shell的參數(shù):v $sh 腳本文件名 參數(shù)2、輸入定向到shell腳本v $sh ”v My Computer = v
7、PATH= /usr/bin:/usr/ccs/bin:/usr/contrib/bin:/binv exportv 或:v PATH= /usr/bin:$HOME/bin:/usr/contrib/bin:/binv 使用export命令:通過它可以導(dǎo)出shell變量,這樣可以對子進程有效。Company file文件示例文件示例v Company name引號引號v 1、雙引號“”v 由雙引號括起來的字符(除$、倒引號、反斜線)通常都作為普通字符對待。v 2、單引號v 由單引號括起來的字符均作為普通字符對待。v 3、倒引號v 由倒引號括起來的字符串被shell解釋成命令行
8、處理。Company name引號引號v Company name變量使用的命令變量使用的命令v #! /bin/bashv var1=abcd efgv echo $var1v var2=1234v echo The value of var2 is $var2v echo $HOMEv echo $PATHv echo $PWDCompany name變量使用的命令變量使用的命令v Company name 特殊字符串引用的例外特殊字符串引用的例外 引用雙引號、單引號和轉(zhuǎn)意符都不能消除對echo命令有特殊功能的控制字串(逃逸字符)的特殊含義。這些控制字串是:bBackspacec顯示后不換
9、行f在終端上屏幕的開始處顯示n換行r回車t制表符v垂直制表符反斜框特殊字符的引用(續(xù))特殊字符的引用(續(xù))Company name$*和和$的用法的用法Company name$*和和$的用法的用法v Company name$的用法的用法v$變量用于保留當前進程的id號。使用它可以做以下事情:v1、創(chuàng)建唯一的文件名。v2、確定哪一個用戶正在運行當前進程。v3、訪問/proc目錄結(jié)構(gòu),了解有關(guān)當前進程的信息。v注意:/proc目錄是一個偽文件系統(tǒng),用作與核心數(shù)據(jù)結(jié)構(gòu)的接口。通常只有系統(tǒng)管理員才需要知道/proc目錄的細節(jié)。Company name$的用法的用法Company name$的用法的
10、用法v Company nameShell的基本結(jié)構(gòu)及觀念的基本結(jié)構(gòu)及觀念 v Script是以行為單位,我們所寫的Shell命令會被分解成一行一行來執(zhí)行。而每一行可以是命令、注解、或是流程控制指令等。如果某一行尚未完成,可以在行末加上“” ,這個時候下一行的內(nèi)容就會接到這一行的后面,成為同一行,如下:v echo The message is v too long so we have to split it into several linesCompany name變量替換變量替換變量替換表達式一覽表變量替換表達式一覽表 Shell在遇到未設(shè)置的變量時,將其值作為空串處理。而在實際應(yīng)用中
11、,對于未設(shè)置的變量,用戶可以根據(jù)需要采用不同的處理方式,這可通過變量替換來實現(xiàn)。 變量替換提供了三種功能: 允許替換未設(shè)置變量的隱含值; 允許對未設(shè)置變量賦值; 在訪問未設(shè)置變量時,提示出錯信息。Company name變量替換變量替換v $VARIABLE 基本變量替換。v $VARIABLE:-DEFAULT 如果VARIABLE沒有值,則這種表示形式返回DEFAULT到值。v $VARIABLE:= DEFAULT 如果VARIABLE沒有值,則這種表示形式返回DEFAULT到值。另外,如果VARIABLE沒有設(shè)置,則把DEFAULT的值賦予它。v $VARIABLE:+VALUE 如果
12、VARIABLE被設(shè)置,則這種表示形式返回VALUE;否則,返回一個空串。v $#VARIABLE 返回VARIABLE值得長度。如果VARIABLE為*或,則返回$所表示元素的個數(shù)。v $VARIABLE:?MESSAGE 如果VARIABLE沒有值,則這種表示形式返回MESSAGE的值。Shell將顯示VARIABLE的名字。Company name變量替換變量替換v Company name變量替換變量替換v Company name數(shù)組變量數(shù)組變量v 在Korn Shell(ksh)中,擴展了變量的功能,支持數(shù)組變量。v 數(shù)組提供了一種將變量集合分組的方法。程序員不是為每個所要求的變量
13、創(chuàng)建一個新名字,而是使用一個數(shù)組變量存儲所有其它變量。v 創(chuàng)建數(shù)組變量最簡單的方法就是為數(shù)組中的每一個元素賦值。v nameindex=valuev 數(shù)組初始化的第二種方式是一次設(shè)置多個元素。v set -A name value1 value2 value3 valuenv 在bash中,多個元素的設(shè)置方式如下:v name=(value1 value2 valuen)v ksh和bash都是使用從0開始的連續(xù)數(shù)組下標。Company name訪問數(shù)組值訪問數(shù)組值v在為數(shù)組賦值后,可以對它們進行訪問:v $nameindexv可以使用下列方式訪問數(shù)組中的所有項:v $name*v $name
14、v如果數(shù)組中某一項所存儲的值帶有空格,則這種格式的數(shù)組訪問方式就不能正常工作,需要使用第二種格式。Company name數(shù)組變量數(shù)組變量v例:Company name訪問數(shù)組值訪問數(shù)組值v例:Company name只讀變量只讀變量v通過使用readonly命令,Shell提供了一種將變量標記為只讀方式,當命令被標為只讀時,它的值不可改變。v注意:該特點可以在腳本中保持關(guān)鍵變量不會被意外地覆蓋掉。Company name只讀變量只讀變量Company name執(zhí)行執(zhí)行Shell命令命令 v 在Bourne Shell中有五種方法執(zhí)行一個UNIX命令,而這五種方式所產(chǎn)生的結(jié)果稍微有些不同。 v
15、 1. 直接下命令 v 這個方式和在命令列中直接下命令的效果一樣。 v 2. 使用sh命令 v sh command v 這個文件必須是Bourne Shell的Script,但這個文件并不一定要設(shè)成可執(zhí)行。除此之外和直接下命令的方式一樣。 Company name執(zhí)行執(zhí)行Shell命令命令 v 3. 使用“.”命令 v . command v 這時和使用sh命令相似,只不過它不像sh一般會產(chǎn)生新的process ,相反地,它會在原有的process 下完成工作。v 4. 使用exec命令 v exec command v 此時這個Script將會被所執(zhí)行的命令所取代。當這個命令執(zhí)行完畢之后,
16、這個 Script也會隨之結(jié)束。v 5. 使用命令替換 v 這是一個相當有用的方法。如果想要使某個命令的輸出成為另一個命令的參數(shù) 時,就一定要使用這個方法。我們將命令列於兩個 號之間,而Shell會以這個命令執(zhí)行后的輸出結(jié)果代替這個命令以及兩個 符號。 Company name執(zhí)行執(zhí)行Shell命令命令 v str=Current directory is pwd echo $str 結(jié)果如下: Current directory is /users/cc/mgtsai 這個意思是pwd 這個命令輸出“/users/cc/mgtsai”,而后整個字串代替原來的pwd 設(shè)定str 變量,所以st
17、r 變量的內(nèi)容則會有pwd 命令的輸出。v number=expr $number + 1 這就是先前所提要作數(shù)值運算的方法,基本上expr命令只將運算式解,而后輸出到標準輸出上。如果要將某變量設(shè)定成其值,非得靠命令替換的方式不可。這個例子是將number變量的值加1 后再存回number變量。 Company nameShell命令命令vRead命令:從鍵盤讀入數(shù)據(jù),賦給變量v如:read var1 var2 var3v這時read會將一個字分給一個變量。如果輸入的字比變量還多,最后一個變量會將 剩下的字當成其值。如果輸入的字比變量還少,則后面的變量會設(shè)成空字串。 Company nameR
18、ead命令命令v Read Read 的例子:的例子:v #! /bin/shv read first second thirdv echo the first parameter is $firstv echo the second parameter is $secondv e c h o t h e t h i r d p a r a m e t e r i s $ t h i r d Company nameRead命令命令v Company nameRead命令命令v Company nameexpr命令命令vShell提供了五種基本的算術(shù)運算符:v 、*、/、%vShell變量通常
19、按字符進行存放。為了進行整數(shù)的算術(shù)運算,必須使用expr命令,格式是:v expr n1 op n2Company nameexpr命令命令vShell變量的算術(shù)運算:vexpr命令:對整數(shù)型變量進行算術(shù)運算v如:expr 3 + 5 expr $var1 - 5 expr $var1 / $var2 expr $var3 * 10注意:在運算符的前后必須留有空格。Company nameexpr命令命令v多個算術(shù)表達式可以組合在一起:v expr 6 + 8 / 3v運算符的優(yōu)先級:v如果 要改變計算順序,必須使用倒引號:v expr expr 6 + 8 / 3Company nameSh
20、ell命令命令v Expr2程序的例子:v #! /bin/shv a=10v b=20v c=30v value1=expr $a + $b + $cv echo The value of value1 is $value1v value2=expr $c / $bv echo The value of value2 is $value2v value3=expr $c * $bv echo The value of value3 is $value3v value4=expr $a + $c / $bv echo The value of value4 is $value4Company
21、nameShell命令命令v Company name復(fù)雜的復(fù)雜的Shell命令命令v復(fù)雜的運算:復(fù)雜的運算: expr expr 5+7 / $var4v將運算結(jié)果賦予變量:將運算結(jié)果賦予變量: $var4= expr $var1 / $var2 Company name條件與條件與 test 命令命令 簡單條件簡單條件 在高級語言中判斷條件依賴于運算的結(jié)果,而Shell語言依賴條件是命令執(zhí)行的“出口狀態(tài)”。Shell命令的“出口狀態(tài)”($?): 成功:0 、 true 失?。簒 、 false (x 為非0數(shù)值)例:判斷指定目錄是否存在, 并顯示相應(yīng)信息。 # cat checkdirte
22、st -d $1 & echo “$1 is a dictory”& exit 0echo “$1 is not a dictroy”exit 1Company name條件與條件與 test 命令(續(xù)命令(續(xù)1) test 命令命令 test 命令可用于對字符串、整數(shù)及文件進行各類測試。其命令格式如下:test expression 或 expression 注意 中的空格) expression 是測試的條件,計算結(jié)果: 為真,則返回“零”出口狀態(tài), 為假,否則返回“非零” 出口狀態(tài)。例:判斷當前上機用戶人數(shù)是否多于10 ? # test who | wc -l -gt 1
23、0 # echo $?Company name條件與條件與 test 命令(續(xù)命令(續(xù)2) test 字符串測試表達式字符串測試表達式 expressionstring1 = string2string1 != string2string-n string-z string滿足下列條件時返回真值滿足下列條件時返回真值string1與string2相同string1與string2不相同string不為空串string不為空串string為空串Company name變量測試語句變量測試語句v假設(shè)變量假設(shè)變量var的值是的值是“hello”:v $var = “hello”v $var != “
24、gello”v $var != “hello”Company name變量測試語句變量測試語句v Company name條件與條件與 test 命令(續(xù)命令(續(xù)3) 例1:兩個字符串進行比較# user=smith# test $user = smith# echo $?0 例2:查找指定的文件或目錄 # cat search test $1 | echo err: no parameter ; exit 1; find . -name $1 -print Company name條件與條件與 test 命令(續(xù)命令(續(xù)4) 例2:帶有空格的字符串比較# month=January # te
25、st $month = January# echo $?1# test $month = January# echo $?0區(qū)別:Shell在處理變量時,遇到有雙引號將保留其內(nèi)容,而省略雙引號時,將濾去空格。Company name條件與條件與 test 命令(續(xù)命令(續(xù)7) 例3:帶有空格的字符串比較# a=testing string# test $a = testing string# echo $?0# test $a = testing stringtest: unknown operator string Shell處理變量 $a 時,將其進行變量替換,然后將結(jié)果(testing
26、string)傳遞給test,而test將string作為操作符來處理,因此出錯。Company name條件與條件與 test 命令(續(xù)命令(續(xù)8) 例4:帶有空串(或未設(shè)置的字符串比較)# name= # test $name = smith# echo $?1# test $name = smithtest: argument expected Shell處理變量$name時,雙引號將其括起的內(nèi)容作為一個“位置持有者”來保留,并把該值傳遞給test,保證處理的正常執(zhí)行。Company name條件與條件與 test 命令(續(xù)命令(續(xù)9) 例4:帶有空串的字符串比較# blanks= #
27、test $blanks# echo $?1# test $blanks# echo $?0 Shell處理變量$blanks時,將空格濾去,使其變?yōu)榭沾畟鬟f給test;而雙引號保留 “位置持有者”的位置,其值為一個空格(空白符),傳遞給test。Company name條件與條件與 test 命令(續(xù)命令(續(xù)10) 例4:帶有算符的字符串比較# symvar=# test -z $symvartest: argument expected 出錯的原因是“=”運算符比“-z”運算符的優(yōu)先級要高,因此,test 命令期望在等號之后要有一個自變量。為避免上述問題的發(fā)生,可用下面命令形式替換:# t
28、est x$symvar = x# echo $?1Company name條件與條件與 test 命令(續(xù)命令(續(xù)11) test命令命令可用于整數(shù)比較可用于整數(shù)比較 首先要搞清楚整數(shù)比較的兩個概念: Shell并不區(qū)分放在Shell變量中的值的類型,就變量本身而言,它存放的僅僅是一組字符串,既Shell只有一種類型的變量串變量。 當使用整數(shù)比較操作符時,是test命令來解釋存放在變量中的整數(shù)值,而不是Shell。 Company name條件與條件與 test 命令(續(xù)命令(續(xù)12) test 整數(shù)測試表達式整數(shù)測試表達式 expressionint1 -eq int2int1 -ge i
29、nt2int1 -gt int2int1 -le int2int1 -lt int2滿足下列條件時返回真值滿足下列條件時返回真值兩者為數(shù)值且int1等于int2兩者為數(shù)值且int1大于或等于int2兩者為數(shù)值且int1大于int2兩者為數(shù)值且int1小于或等于int2兩者為數(shù)值且int1小于int2int1 -ne int2兩者為數(shù)值且int1不等于int2Company name條件與條件與 test 命令(續(xù)命令(續(xù)13) 例:# x1= 005 # x2= 10# test $x1 = 5 按串方式比較# echo $?1# test $x1 -eq 5 按數(shù)值方式比較# echo $?
30、0# test $x2 -eq 10# echo $?0 Company name條件與條件與 test 命令(續(xù)命令(續(xù)14) test 中常用的文件測試表達式中常用的文件測試表達式expression-r FileName-w FileName-x FileName-s FileName-d FileName滿足下列條件時返回真值滿足下列條件時返回真值FileName存在且為用戶可讀FileName存在且為用戶可寫FileName存在且為用戶可執(zhí)行FileName存在且其長度大于0FileName為一個目錄-f FileNameFileName為一個普通文件Company name條件與條
31、件與 test 命令(續(xù)命令(續(xù)15) 例1:檢查指定的文件是否存在并且可讀test -f /usr/fk/message 例2:檢查指定的文件是否為目錄 test -d /usr/src/local/sendmail 例3:檢查指定的出錯文件是否為空,如不空則列出該文件的內(nèi)容。 test -s $errfile & cat $errfile Company name條件與條件與 test 命令(續(xù)命令(續(xù)16) 表達式的邏輯運算表達式的邏輯運算 邏輯運算符包括:! 邏輯非單目運算符,可放置在任何其它test表達式之前,求得表達式運算結(jié)果得非非值。 -a 邏輯與運算符,執(zhí)行兩個表達式的
32、邏輯與運算,并且僅當兩者都為真時,才返回真值。 -o 邏輯或運算符,執(zhí)行兩個表達式的邏輯或運算,并僅當兩者之一為真時,就返回真值。 Company name條件與條件與 test 命令(續(xù)命令(續(xù)17) 邏輯運算符的優(yōu)先級邏輯運算符的優(yōu)先級 邏輯運算符優(yōu)先級(由高到低) 的排列順序 如下: ( ) ! -a -o 邏輯運算符優(yōu)先級要比字符串操作符、數(shù)字比較操作符、文件操作符的優(yōu)先級低。Company name條件與條件與 test 命令(續(xù)命令(續(xù)18) 表達式的邏輯組合表達式的邏輯組合expression! exprexpr1 a expr2expr1 o expr2(expr)滿足下列條件
33、時返回真值滿足下列條件時返回真值expr返回值為假( Not )expr1和expr2同時為真 ( And )expr1為真或expr2為真 ( Or )expr為真時 注意左右括號前要加轉(zhuǎn)義符 Company name條件與條件與 test 命令(續(xù)命令(續(xù)19) 例1:當指定的文件不可讀時為真。test ! -r /usr/fk/message 例2:當指定的文件均存在,且message為可讀、 $mailfile 指定的文件為普通文件時,返回真。test -r /usr/fk/message -a -f $mailfile 例3:當變量值大于等于0并且小于10時為真。test $coun
34、t -ge 0 -a $count -lt 10 例4: test ( “$a” -eq 0 -o $b -gt 5 ) -a $c -le 8Company nameif 結(jié)構(gòu)結(jié)構(gòu) if 的簡單結(jié)構(gòu)的簡單結(jié)構(gòu)格式格式 if command1 thencommand2command3 fiCompany nameif 結(jié)構(gòu)(續(xù)結(jié)構(gòu)(續(xù)1) if 的完整結(jié)構(gòu)的完整結(jié)構(gòu)格式格式 if command1 thencommand2command3 elsecommand4command5 fiCompany nameif 結(jié)構(gòu)(續(xù)結(jié)構(gòu)(續(xù)2) if 的連用結(jié)構(gòu)的連用結(jié)構(gòu)格式格式1 if command
35、1 then commands else if command2 then commands : : fi fiCompany nameif 結(jié)構(gòu)(續(xù)結(jié)構(gòu)(續(xù)3) if 的連用結(jié)構(gòu)的連用結(jié)構(gòu)格式格式2 if command1 then commands elif command2 then commands : : commands else commands fiCompany name變量測試語句變量測試語句v #! /bin/shv if $# -ne 2 ; thenv echo Not enough parametersv exit 0v fiv if $1 -eq $2 ; the
36、nv echo $1 equals $2v elif $1 -lt $2 ; thenv echo $1 littler than $2v elif $1 -gt $2 ; then v echo $1 greater than $2v fiCompany name變量測試語句變量測試語句v Company name文件控制語句文件控制語句v #! /bin/bashv v if $# -gt 1 v thenv echo Too many parametersv exit 1v fiv v if $# -eq 0 v thenv echo Too few parametersv exit 1
37、Company name文件控制語句文件控制語句v fiv if ! -d $1 v thenv echo Usage : $0 directoryv exit 1v fiv v for i in $1/*v dov if -x $i -a ! -d $i v thenv ls $iv fiv done Company name文件控制語句文件控制語句v Company name流控制語句流控制語句v echo please input a file name:cv read file_namev if -d $file_name v thenv echo $file_name is a di
38、rectoryv elif -f $file_name v then v echo $file_name is a common filev elif -c $file_name -o -b $file_name v then v echo $file_name is a device filev elsev echo $file_name is an unkonwn filev fiCompany name流控制語句流控制語句v Company namecase 結(jié)構(gòu)結(jié)構(gòu) 格式格式 case value in pattern1) command11 command1n; pattern2)
39、command21 command2n; patternn) commandn1 commandnn; esacCompany name流控制語句流控制語句v #! /bin/shv echo *v echo Please select your operation:v echo 1 Copyv echo 2 Deletev echo 3 Backupv echo *v read opCompany name流控制語句流控制語句v case $op in v C)v echo your selection is Copyv ;v D)v echo your selection is Delet
40、ev ;v B)v echo your selection is Backupv ;v *)v echo invalide selectionv esacCompany name流控制語句流控制語句v Company namefor 結(jié)構(gòu)結(jié)構(gòu) 格式格式 for variable in arg1 arg2 argn docommand command doneCompany name流控制語句流控制語句v例子:v#!/bin/bashvfor DAY in Sunday Monday Tuesday Wednesday Thursday Friday Saturdayvdov echo The
41、day is : $DAYvdoneCompany name流控制語句流控制語句v Company name流控制語句流控制語句v Company name流控制語句流控制語句v Company namewhile 結(jié)構(gòu)結(jié)構(gòu) 格式格式 while command docommand command doneCompany name流控制語句流控制語句v #! /bin/shv num=1v while $num -le 10 v dov square=expr $num * $numv echo $squarev num=expr $num + 1v doneCompany name流控制語句
42、流控制語句v Company name流控制語句流控制語句v echo The while loop example.v echov VAR1=1v while (VAR1100)v dov echo Value of the variable is : $VAR1v (VAR1=VAR1*2)v donev echov echo The loop execution is finishedCompany name流控制語句流控制語句Company name流控制語句流控制語句Company name流控制語句流控制語句Company nameuntil 結(jié)構(gòu)結(jié)構(gòu) 格式格式 until com
43、mand docommand command doneCompany nameUntil_do_done循環(huán)循環(huán)v until_do_done循環(huán)和while_do_done循環(huán)類似。唯一不同的是只要測試條件保持為假時就繼續(xù)執(zhí)行。一旦條件為真,它就終止執(zhí)行。v until conditionv dov command blockv doneCompany nameUntil_do_done循環(huán)循環(huán)v Company name流控制語句流控制語句v跳出循環(huán):跳出循環(huán):break和和continuevBreak:跳出整個循環(huán):跳出整個循環(huán)vContinue:跳過本次循環(huán),進行下次循環(huán):跳過本次循環(huán),進行下次循環(huán)Company name流控制語句流控制語句v end_loop例子:v #! /bin/shv while truev dov echo *v echo Please select your operation:v echo 1 Copyv echo 2 Deletev echo 3 Backupv echo 4 Quitv echo *v read opCompany name流控制語句
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)游泳小學(xué)作文15篇
- 《打電話》教案匯編九篇
- 大學(xué)生實習(xí)報告(15篇)
- 2024年12月 《馬克思主義基本原理概論》復(fù)習(xí)題
- 關(guān)于五年級單元作文300字10篇
- 2024年五年級語文上冊 第一單元 語文園地一教學(xué)實錄 新人教版
- 公司財務(wù)個人工作計劃5篇
- 2019年資產(chǎn)負債表(樣表)
- 轉(zhuǎn)讓協(xié)議書范文七篇
- 個人房屋租賃合同范文合集五篇
- 山東省濰坊市濰城區(qū)2023-2024學(xué)年六年級上學(xué)期期末語文試題
- 電玩城崗位流程培訓(xùn)方案
- 會計師事務(wù)所保密制度
- 復(fù)合機器人行業(yè)分析
- 建立進出校園安全控制與管理的方案
- 阿里菜鳥裹裹云客服在線客服認證考試及答案
- 水庫防恐反恐應(yīng)急預(yù)案
- 供應(yīng)商管理培訓(xùn)資料課件
- 綠植租擺服務(wù)投標方案(完整技術(shù)標)
- 幼兒園優(yōu)質(zhì)公開課:大班科學(xué)《有趣的仿生》課件
- 通用短視頻拍攝腳本模板
評論
0/150
提交評論