實訓5Linuxshell編程匯總_第1頁
實訓5Linuxshell編程匯總_第2頁
實訓5Linuxshell編程匯總_第3頁
實訓5Linuxshell編程匯總_第4頁
實訓5Linuxshell編程匯總_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、實訓五 Linux shell編程【實習目的】掌握Linux shell的基本編程,包括:編程、調(diào)試與應(yīng)用【實習指導】一、shell編程簡介Linux shell是一個命令解釋器,用來接受并執(zhí)行命令(包括運行批處理文件和執(zhí)行程序)。shell環(huán)繞在內(nèi)核的外層,它是Linux操作系統(tǒng)和用戶之間的界面。當用戶從shell或其他程序向Linux傳遞命令,內(nèi)核會做出相應(yīng)的反應(yīng)。這里,將介紹Linux下最常用的shell bash。bash(Bourne Again Shell)是大多數(shù)Linux發(fā)行套件的缺省shell,并被大多數(shù)用戶所使用。在命令行輸入命令時,每次輸入一個命令,就可得到系統(tǒng)的響應(yīng)。但

2、如果經(jīng)常要依次執(zhí)行同一組命令,就可以利用shell程序來實現(xiàn)。shell程序是放在一個文件中的一系列的Linux命令。執(zhí)行shell程序時,由Linux逐條解釋和執(zhí)行每個命令。二、shell程序文件shell程序文件是一個特殊的文本文件,其內(nèi)容包含一系列可在shell提示符下執(zhí)行的命令,以及shell提供的專用的命令和控制語句。Linux提供的shell命令可通過命令help來獲得,在shell提示符下,鍵入命令“help | more”,圖5-1所示是獲得所有shell命令的列表的一部分。圖5-1如要獲得其中命令echo的詳細幫助信息,則在shell提示符下,鍵入命令“help echo”,

3、便獲得該命令的詳細使用信息如圖5-2所示。圖5-2圖中可觀察到,該命令的功能是在屏幕上輸出給定的信息。shell程序文件的運行過程是將shell程序文件中的命令依次執(zhí)行。三、shell程序的建立shell程序文件可用任何一個文件編輯器(如vi)來建立。例如,建立shell程序shex1,存放在當前目錄下(假定當前目錄為 /root),程序功能為先清屏,然后顯示98年的1、2、3月份的月歷。程序文件內(nèi)容如下:clearcal 1 98cal 2 98cal 3 98用vi編輯器建立shell程序文件shex1的方法如下:(1)鍵入命令“vi shex1”,啟動vi;(2)按命令“i”,進入vi的

4、插入狀態(tài);(3)輸入程序文件內(nèi)容;(4)按鍵,再鍵入“:”,切換到vi的命令狀態(tài);(5)最后鍵入命令“wq”,保存文件內(nèi)容后,退出vi。至此,shell程序文件shex1已建立。四、shell程序的運行運行shell程序有兩種方法:一種是在shell環(huán)境下,將shell 程序文件作為子shell程序被調(diào)用執(zhí)行;另一種是將shell程序文件視作命令來執(zhí)行(因此,shell程序文件可以看作是將各種命令組合在一起而形成的新命令),此時必須賦予shell程序文件執(zhí)行權(quán)限。方法一:sh 方法二: 【例如】分別用兩種方法運行已建立的shell程序文件shex1。方法一:在shell提示符下,鍵入命令:“s

5、h shex1”。方法二:(1) 首先,給shell程序文件shex1賦予可執(zhí)行權(quán)限,則在shell提示符下,鍵入命令:“chmod a+x shex1”; (2)然后,在shell 提示符下,鍵入命令“/root/shex1”便可執(zhí)行該shex1程序,如同其他shell命令一樣。兩種方法的運行結(jié)果,如圖5-3所示。圖5-3運行命令中有參數(shù)和沒有參數(shù)的情況分別稱為帶參數(shù)的運行命令和不帶參數(shù)的運行命令。在shell程序中可使用的形參為$0、$1、$2、$9,當程序運行時, 依次賦值給$1、$2、,通常稱運行命令中所帶的參數(shù)為實參。$0是一個特殊的形參,其值規(guī)定為當前運行的shell程序命令本身。

6、由于形參個數(shù)有限,當參數(shù)較多時,可通過命令shift來移動形參與實參的對應(yīng)關(guān)系,執(zhí)行一次shift后,$1、$2、變?yōu)橐来闻c 對應(yīng),再執(zhí)行一次shift后,$1、$2、變?yōu)橐来闻c 對應(yīng),依此類推。通過下面的例子shell程序shex2,可觀察參數(shù)的移動變化。shex2程序文件內(nèi)容如下:echo $0 $1 $2shiftecho $0 $1 $2運行的命令所帶參數(shù)及運行結(jié)果如圖5-4所示。圖5-4圖中可觀察到,$0的值始終是當前運行的shell程序命令本身,即 /root/shex2。例如,將shex1程序用參數(shù)形式進行改寫,程序功能保持不變,最后將程序保存為shex3,存放在當前目錄下。sh

7、ex3程序文件內(nèi)容如下:clearcal $1 98cal $2 98cal $3 98運行的命令所帶參數(shù)及運行結(jié)果分別如圖5-5所示。圖5-5當帶參數(shù)的運行命令為“/root/shex3 1 2 3”,則運行結(jié)果顯示如圖4-6所示。注意,當實參為空時,形參將被傳遞空值。五、變量Linux 的shell程序中允許使用各種類型的變量,主要有系統(tǒng)、內(nèi)部和用戶變量三種。系統(tǒng)變量也稱環(huán)境變量,它與用戶變量的區(qū)別在于它可將值傳給shell運行的其他命令或shell程序使用,亦即系統(tǒng)變量是全局變量。內(nèi)部變量是由系統(tǒng)提供,與環(huán)境變量不同,用戶不能修改用戶變量由用戶定義的變量,是當前shell的局部變量,不能

8、被shell運行的其他命令或shell程序使用,亦即用戶在shell程序中定義的程序變量只在程序運行時有效,一旦退出,這些變量自動失效。通過shell提供的命令set,可以查看當前shell下定義的一系列變量及其值。例如,在shell提示符下,鍵入命令“set | more”,顯示當前shell下定義的變量及其值如圖5-6所示。圖5-61、變量賦值格式: =功能:將等號右邊的字符串賦給等號左邊的變量,即右邊的字符串為左邊變量的值。說明,任何不含空格的字符串都可作變量名。若字符串中含有空格,則在字符串上加上引號。例如,要求定義一個用戶變量name1,并給變量賦值為“MARY”,則在shell提示

9、符下,鍵入命令“name1=MARY”。例如,要求定義一個用戶變量 name2并給變量賦值為“X Window”,則在shell提示符下,鍵入命令“name2=X Window”。2、引用變量格式:$功能:引用變量的值。例如,要求將變量name1的值賦給變量name2,則在shell提示符下,鍵入命令“name2=$name1”。例如,要求在屏幕上顯示變量name1的值,則在shell提示符下,鍵入命令“echo $name1”。3、釋放變量格式:unset 功能:釋放一個現(xiàn)存的shell變量。例如,要求釋放變量name1,則在shell提示符下,鍵入命令“unset name1”。變量的定義

10、、賦值及引用過程如圖5-7所示。 圖5-7六、shell程序的控制流與其他高級語言一樣,shell編程中也提供了條件與循環(huán)等控制結(jié)構(gòu),下面介紹bash提供的主要的程序控制結(jié)構(gòu)語句。1、條件控制流(1)if-then-else 結(jié)構(gòu) if then else fi其中,通常是“test ”,當條件成立,則返回0;條件不成立,則返回一個非0值。執(zhí)行過程說明:當返回0時,則執(zhí)行then后的,然后執(zhí)行fi后面的命令;否則執(zhí)行else 后的,然后執(zhí)行fi后面的命令。在if-then-else結(jié)構(gòu)中,允許在then和else后的命令集中包含if-then-else結(jié)構(gòu),即允許嵌套。需要強調(diào)的是其中if和f

11、i必須配對出現(xiàn)。(2)if-then-fi結(jié)構(gòu) if then fi執(zhí)行過程說明:當返回0時,則執(zhí)行then后的,然后執(zhí)行fi后面的命令,否則執(zhí)行fi后面的命令。(3)case結(jié)構(gòu)case in字符串1) ;字符串n) *) esac其中,字符串中可含通配符。執(zhí)行過程說明:程序?qū)⒌闹狄来魏妥址?、字符串2、字符串n進行比較,哪個匹配,則執(zhí)行后面的;若都不匹配,則執(zhí)行。說明,如果能同時匹配多個字符串,則只能執(zhí)行第一個匹配字符串后的。2、循環(huán)控制流(1)for-in結(jié)構(gòu)for in do done其中,中的值與值之間用空格分隔。執(zhí)行過程說明:程序從中依次取值,賦給,并執(zhí)行一輪由do和done括起

12、來的循環(huán)體中的,直到中的值取完,再執(zhí)行done后面的命令。若“in ”缺省,則為實參集。(2)while 結(jié)構(gòu) while do done執(zhí)行過程說明:當返回0時,則執(zhí)行一輪由do和done括起來的循環(huán)體中的,直到返回一個非0值時,則不再執(zhí)行循環(huán)體中的命令,執(zhí)行done后面的命令。(3)until 結(jié)構(gòu)until do done執(zhí)行過程說明:與while 結(jié)構(gòu)相反,當返回非0時,執(zhí)行循環(huán)體中的命令,直到返回一個0值時,繼續(xù)執(zhí)行done后面的命令。3、條件判斷命令test條件表達式是控制程序流程的關(guān)鍵,shell提供的test命令可組合多個表達式,生成功能靈活的條件表達式,使shell程序的功能

13、更強,下面介紹test命令的基本使用。格式:test 功能:test命令返回表達式成立與否的狀態(tài)值,如果表達式成立,則test返回真的狀態(tài)值0,否則,test返回假的狀態(tài)值,即一個非0值。test命令中的常見的有以下幾類:(1)文件特性類-e : 檢查存在否,若存在,返回真值;否則返回假值。-f : 檢查是否是普通文件,若是,返回真值;否則返回假值。-d : 檢查是否是目錄,若是,返回真值;否則返回假值。-r : 檢查是否可讀,若是,返回真值;否則返回假值。-w : 檢查是否可寫,若是,返回真值;否則返回假值。-x : 檢查是否可執(zhí)行,若是,返回真值;否則返回假值。-s : 檢查是否存在且文件

14、長度大于零,若是,返回真值;否則返回假值。 nt : 如果比新(根據(jù)文件最后修改時間判斷),返回真值;否則返回假值。 ot : 若比舊(根據(jù)文件最后修改時間判斷),返回真值;否則返回假值。 ef : 如果和有相同的設(shè)備名和inode號,返回真值;否則返回假值。(2)字符串類-z : 如果長度為零,返回真值;否則返回假值。-n : 如果長度不為零,返回真值;否則返回假值。 = : 如果與相等,返回真值;否則返回假值。 != : 如果與不相等,返回真值;否則返回假值。(3)與或表達式類?。?如果為假,則返回真值;否則返回假值。 a : 、進行與操作,若、均為真,則返回真值;否則返回為假值。 o :

15、 、進行或操作,若、均為假,則返回假值;否則返回真值。(4)數(shù)值表達式類 eq : 如果等于,則返回真值;否則返回假值。 ne : 如果不等于,則返回真值;否則返回假值。 lt : 如果小于,則返回真值;否則返回假值。 le : 如果小于或等于,則返回真值;否則返回假值。 gt : 如果大于,則返回真值;否則返回假值。 ge : 如果大于或等于,則返回真值;否則返回假值。七、shell程序調(diào)試簡介有兩種簡便的跟蹤功能可以用于shell程序的調(diào)試,即在shell程序中加入命令set -v或set -x。格式1:set -v功能:當執(zhí)行一個shell程序時,會在執(zhí)行程序文件中的每條命令之前,自動在

16、屏幕上先顯示該條命令。格式2:set -x功能:當執(zhí)行shell程序時,它會把將要執(zhí)行的命令逐條進行參量定值,并以最后執(zhí)行的形式在屏幕上顯示。八、實例1、編寫shell程序文件shp1,存放在當前目錄下,程序功能要求如下:如果 /etc目錄中的文件profile存在,則將其復制到fd0盤的根目錄中,并分屏顯示fd0盤上的profile文件內(nèi)容;否則在屏幕上顯示信息“profile is not exist!”。(1)用vi創(chuàng)立shell程序文件shp1,程序如下:if test -e /etc/profile then cp /etc/profile /mnt/floppy cat /mnt/

17、floppy/profile|more rm -f /mnt/floppy/profile else echo profile is not exist!fi(2)用兩種方法運行程序shp1方法一:在shell提示符下,鍵入命令“sh shp1”。方法二:給程序文件賦予可執(zhí)行屬性“X” 在shell提示符下,鍵入命令“chmod a+x shp1”運行程序 在shell提示符下,鍵入命令“/root/shp1”觀察運行結(jié)果,若文件profile存在,則屏幕顯示如圖5-8所示 ,若文件profile不存在,則屏幕顯示如圖5-9所示。圖5-8圖5-92、編寫shell程序文件shp2,存放在當前目

18、錄下,程序功能要求如下:用for命令實現(xiàn),在當前目錄下創(chuàng)建名為user0、user1、user2、user9十個子目錄后,用長格式顯示這十個目錄的目錄信息,然后用for命令刪去這十個目錄后,再用長格式顯示這十個目錄的目錄信息。(1)用vi創(chuàng)立shell程序文件shp2,程序如下:for i in 0 1 2 3 4 5 6 7 8 9 do mkdir user$i donels -dl user?|morefor i in 0 1 2 3 4 5 6 7 8 9 do rm -rf user$i donels -dl user? | more(2)用兩種方法運行程序shp2方法一:在shel

19、l提示符下,鍵入命令“sh shp2”。方法二:給程序文件賦予可執(zhí)行屬性“X” 在shell提示符下,鍵入命令“chmod a+x shp2”運行程序 在shell提示符下,鍵入命令“/root/shp2”觀察運行結(jié)果,屏幕顯示如圖5-10所示。圖5-103、編寫shell程序文件shp3,存放在當前目錄下,程序功能要求如下:如果shp3運行時未帶參數(shù),則在屏幕上顯示信息“Parameter Lost!”,并結(jié)束程序運行;如果shp3運行時帶一個參數(shù),則判斷參數(shù)所指定的文件是否存在,如果存在則復制該文件到fd0盤的根目錄;否則先在屏幕上顯示信息“File not found!”,然后顯示程序自

20、身。(1)用vi創(chuàng)立shell程序文件shp3,程序如下:if test -z $1 then echo Parameter Lost! else if test -e $1 then cp $1 /mnt/floppy else echo File not found! cat $0 fifi(2)用兩種方法運行程序shp3方法一:在shell提示符下,鍵入命令“sh shp3”。方法二: 給程序文件賦予可執(zhí)行屬性“X” 在shell提示符下,鍵入命令“chmod a+x shp3” 運行程序 在shell提示符下,鍵入命令“/root/shp3”測試并觀察程序運行結(jié)果,若鍵入命令“sh s

21、hp3”,則運行結(jié)果顯示如圖5-11所示;若鍵入命令“sh shp3 shp1”,則運行結(jié)果顯示如圖5-12所示;若鍵入命令“sh shp3 sx”(其中,sx參數(shù)所指定的文件是一個不存在的文件),則運行結(jié)果顯示如圖5-13所示。圖 5-11圖 5-12圖 5-134、編寫shell程序文件shp4,存放在當前目錄下,程序功能要求如下:如果shp4運行時未帶參數(shù),則在屏幕上顯示信息“ERROR1”;如果shp4運行時只帶一個參數(shù),則在屏幕上顯示信息“ERROR2”;如果帶兩個不同的參數(shù)且參數(shù)1所指定的文件存在,則將參數(shù)1所指定的文件復制到fd0盤的根目錄中,并改名為參數(shù)2所指定的文件名。(1)

22、用vi創(chuàng)立shell程序文件shp4,程序如下:if test -z $1 then echo ERROR1 else if test -z $2 then echo ERROR2 else if test $1 != $2 -a -e $1 then cp $1 /mnt/floppy/$2 fi fifi(2)用兩種方法運行程序shp4方法一:在shell提示符下,鍵入命令“sh shp4”。方法二: 給程序文件賦予可執(zhí)行屬性“X” 在shell提示符下,鍵入命令“chmod a+x shp4” 運行程序 在shell提示符下,鍵入命令“/root/shp4”測試程序,若鍵入命令“sh s

23、hp4 shp1 test1”、“cat shp1”、“cat /mnt/floppy/test1”,則運行結(jié)果顯示如圖5-14所示。圖5-14圖中可觀察到,fd0盤上的復制文件的內(nèi)容test1與原文件shp1的內(nèi)容完全一致。5、編寫shell程序文件shp5,存放在當前目錄下,程序功能要求如下: 清屏 當程序運行時,屏幕顯示如下形式的信息:* This is a shell program for renaming and * 檢查在fd0盤的根目錄中,是否存在由參數(shù)1指定的文件,若不存在,則屏幕顯示信息“File not found!”;若存在則將參數(shù)1指定的文件改名為由參數(shù)2指定的文件名

24、,然后用for命令對改名后的文件顯示長格式的目錄信息和文件內(nèi)容。(1)用vi創(chuàng)立shell程序文件shp5,程序如下:clearecho *echo * This is a shell program for nameing . *echo *if test -n $1 -a -n $2 then if test $1 != $2 then if test -e $1 then mv $1 $2 for cn in ls -l cat do $cn $2 echo done fi else echo File not found! fifi(2)用兩種方法運行程序shp5方法一:在shell提

25、示符下,鍵入命令“sh shp5”。方法二: 給程序文件賦予可執(zhí)行屬性“X” 在shell提示符下,鍵入命令“chmod a+x shp5” 運行程序 在shell提示符下,鍵入命令“/root/shp5”測試程序,若鍵入命令“/root/shp5 shp1 abc”,觀察到的運行結(jié)果如圖5-15所示。圖5-156、編寫shell程序文件shp6,存放在當前目錄下,程序功能要求如下:運行程序shp6時帶一個正整數(shù)參數(shù),將參數(shù)值存入變量value中,如果該參數(shù)大于等于1但小于3,則在屏幕上顯示信息“Value is less than 3 and not less than 1”;如果該參數(shù)大于

26、等于,則在屏幕上顯示信息“Value is not less than 3”;最后以“value=xx”的形式顯示變量value的值。(1)用vi創(chuàng)立shell程序文件shp5,程序如下:if test $1 -ge 1 -a $1 -lt 3 then value=$1 echo value is less than 3 and not less than 1 fiif test $1 -ge 3 then value=$1 echo value is not less than 3fiecho value=$value(2)用兩種方法運行程序shp6方法一:在shell提示符下,鍵入命令“

27、sh shp6”。方法二: 給程序文件賦予可執(zhí)行屬性“X” 在shell提示符下,鍵入命令“chmod a+x shp6” 運行程序 在shell提示符下,鍵入命令“/root/shp6”測試程序并觀察運行結(jié)果如圖5-16所示。圖5-167、編寫shell程序文件shp7,存放在當前目錄下,程序功能要求如下:如果shell程序文件的文件名不為test0,并且當前目錄中不存在test0文件,則將本shell程序文件的名字改為test0,若當前目錄中存在test0文件,則先刪除,再將本shell程序文件的名字改為test0。(1)用vi創(chuàng)立shell程序文件shp7,程序如下:echo Filen

28、ame must be test0if test $0 != test0 then if test -e test0 then rm -f test0 fi mv $0 test0 fi(2)用兩種方法運行程序shp方法一:在shell提示符下,鍵入命令“sh shp”。方法二: 給程序文件賦予可執(zhí)行屬性“X” 在shell提示符下,鍵入命令“chmod a+x shp” 運行程序 在shell提示符下,鍵入命令“/root/shp”測試程序并觀察運行結(jié)果顯示如圖5-17所示。圖5-178、編寫shell程序文件shp8,存放在當前目錄下,程序功能要求如下:判斷fd0盤的根目錄下是否存在子目錄

29、dir1和dir2,若不存在,則先建立它們;若存在,則分別刪除目錄下的文件dlist和flist。然后將/home目錄下所有目錄文件的目錄信息,以長格式形式保存到fd0盤的dir1子目錄下的文件dlist中;將/home目錄下的所有文件的目錄信息,以長格式形式保存到fd0盤的dir2子目錄下的文件flist中。(1)用vi創(chuàng)立shell程序文件shp8,程序如下:if test ! -d /mnt/floppy/dir1 then mkdir /mnt/floppy/dir1 else rm -f /mnt/floppy/dlist fiif test ! -d /mnt/floppy/dir

30、2 then mkdir /mnt/floppy/dir2 else rm -f /mnt/floppy/flistfils -dl /home /mnt/floppy/dir1/dlistls -l /home /mnt/floppy/dir2/flist(2)用兩種方法運行程序shp8方法一:在shell提示符下,鍵入命令“sh shp8”。方法二: 給程序文件賦予可執(zhí)行屬性“X” 在shell提示符下,鍵入命令“chmod a+x shp8” 運行程序 在shell提示符下,鍵入命令“/root/shp8”測試程序并觀察運行結(jié)果顯示如圖5-18所示。圖5-189、編寫shell程序文件s

31、hp9和sub1,存放在當前目錄下,程序完成以下功能:shp9作為shell程序文件的主文件,sub1作為shell程序文件的子文件,當shp9調(diào)用sub1時傳遞兩個參數(shù),參數(shù)1為文件權(quán)限屬性,參數(shù)2為指定用戶,sub1的功能是將當前目錄下以小寫字母開頭且文件名長度為2的所有文件,為指定用戶設(shè)置指定的權(quán)限屬性。(1)用vi創(chuàng)立shell程序文件shp9和sub1,shp9程序如下:sh sub1 r ush sub1 w gsh sub1 x ols -l a-z?鍵入sub1程序如下:chmod $2=$1 a-z?(2)用兩種方法運行程序shp9方法一:在shell提示符下,鍵入命令“sh

32、 shp9”。方法二: 給程序文件賦予可執(zhí)行屬性“X” 在shell提示符下,鍵入命令“chmod a+x shp9” 運行程序 在shell提示符下,鍵入命令“/root/shp9”測試并觀察程序運行結(jié)果顯示如圖5-19所示。圖5-1910、編制一個shell程序文件shp10,當以命令“shp10 xx yy”執(zhí)行shell程序時(其中,xx為年份參數(shù),yy為季度參數(shù)),能自動清屏,并顯示指定年份指定季度中的三個月的月歷。 (1)用vi編輯器編輯建立shell程序文件shp10,程序如下:cleark=$2if test $k=1 then cal 1 $1 cal 2 $1 cal 3

33、$1fiif test $k=2 then cal 4 $1 cal 5 $1 cal 6 $1fiif test $k=3 then cal 7 $1 cal 8 $1 cal 9 $1fiif test $k=4 then cal 10 $1 cal 11 $1 cal 12 $1fi(2)用兩種方法運行程序shp10方法一:在shell提示符下,鍵入命令“sh shp10”。方法二: 給程序文件賦予可執(zhí)行屬性“X” 在shell提示符下,鍵入命令“chmod a+x shp10” 運行程序 在shell提示符下,鍵入命令“/root/shp10”測試并觀察程序的運行結(jié)果如圖5-20所示。

34、圖5-2011、編制一個shell程序shp11,當用命令“shp11 xx yy ”執(zhí)行程序 shp11時(其中,xx yy 為一系列指定文件的參數(shù)),要求能判斷由參數(shù)指定的每個文件是否存在,若不存在,則在屏幕上顯示信息“file not exists”;如果文件存在,則進一步判斷文件長度是否為零,若文件長度為零,則屏幕顯示信息“file exists and has a size equal zero”,否則顯示信息“file exists and has a size greater then zero”。(1)用vi編輯器建立shell程序文件shp11,用while循環(huán)結(jié)構(gòu)編制shp11程序如下:while test $1 do If test -e $1 then if test -s $1 then echo file $1 exists and has a size greater than zero. else echo file $1 exists and has a size equal zero. fi

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論