版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 下載第26章 shell工 具本章將討論以下內(nèi)容:創(chuàng)建以日期命名的文件及臨時(shí)文件。信號(hào)。 trap命令以及如何捕獲信號(hào)。eval命令。 logger命令。 26.1創(chuàng)建保存信息的文件任何腳本都應(yīng)該能夠創(chuàng)建臨時(shí)文件或日志文件。在運(yùn)行腳本做備份時(shí),最好是保存一個(gè)日志文件。這些日志文件通常在文件系統(tǒng)中保留幾周,過(guò)時(shí)將被刪除。 在開(kāi)發(fā)腳本的時(shí)候,可能總要?jiǎng)?chuàng)建一些臨時(shí)的文件。在正常運(yùn)行腳本的時(shí)候,也要使用臨時(shí)文件保存信息,以便作為另外一個(gè)進(jìn)程的輸入??梢允褂?cat命令來(lái)顯示一個(gè)臨時(shí)文件的 內(nèi)容或把它打印出來(lái)。 26.1.1 使用date命令創(chuàng)建日志文件 在創(chuàng)建日志文件時(shí),最好能夠使它具有唯一性,可以
2、按照日志文件創(chuàng)建的日期和時(shí)間來(lái)識(shí)別這些文件。我們可以使用date命令做到這一點(diǎn)。這樣就能夠使日期和時(shí)間成為日志文件名中的一部分。 為了改變?nèi)掌诤蜁r(shí)間的顯示格式,可以使用如下的命令: date option + % format使用加號(hào)+可以設(shè)置當(dāng)前日期和時(shí)間的顯示格式。下面的例子將日期以日、月、年的格式顯示: 下面是一些常用的日期格式: 下面的命令可以使時(shí)間按照hh:mm的格式顯示: 下面的命令可以顯示完整的時(shí)間: 290第五部分 高級(jí)shell編程技巧 下載注意,如果希望在日期和時(shí)間的顯示中包含空格,要使用雙引號(hào)。 在文件名中含有日期的一個(gè)簡(jiǎn)單辦法就是使用置換。把含有你所需要的日期格式的變量
3、附加在相應(yīng)的日志文件名后面即可。 在下面的例子中我們創(chuàng)建了兩個(gè)日志文件,一個(gè)使用了 dd,mm,yy的日期格式,另一個(gè)使用了dd,hh,mm的時(shí)間格式。 下面就是這個(gè)腳本。 運(yùn)行上面的腳本后,得到這樣兩個(gè)日志文件。 26.1.2 創(chuàng)建唯一的臨時(shí)文件 在本書(shū)的前面討論特殊變量時(shí),曾介紹變量 $,該變量中保存有你所運(yùn)行的當(dāng)前進(jìn)程的進(jìn)程號(hào)??梢允褂盟谖覀冞\(yùn)行的腳本中創(chuàng)建一個(gè)唯一的臨時(shí)文件,因?yàn)樵撃_本在運(yùn)行時(shí)的進(jìn)程號(hào)是唯一的。我們只要?jiǎng)?chuàng)建一個(gè)文件并在后面附加上 $即可。在腳本結(jié)束時(shí),只需刪除帶有$擴(kuò)展的臨時(shí)文件即可。 Shell將會(huì)把$解析為當(dāng)前的進(jìn)程號(hào),并刪除相應(yīng)的文件,而不會(huì)影響以其他進(jìn)程號(hào)做后
4、綴的文件。 在命令行中輸入如下的命令: 這就是當(dāng)前的進(jìn)程號(hào),如果你執(zhí)行這個(gè)命令,看到的結(jié)果可能會(huì)有所不同?,F(xiàn)在如果我創(chuàng)建另一個(gè)登錄進(jìn)程并輸入同樣的命令,將會(huì)得到一個(gè)不同的進(jìn)程號(hào),因?yàn)槲乙呀?jīng)啟動(dòng)了一 個(gè)新的進(jìn)程。 下面的例子中,創(chuàng)建了兩個(gè)臨時(shí)文件,并進(jìn)行了相應(yīng)的操作,最后在結(jié)束時(shí)刪除了這些 文件。 第 26 章 shell 工 具291 下載當(dāng)上面的腳本運(yùn)行時(shí),將會(huì)創(chuàng)建這樣兩個(gè)文件: 在執(zhí)行rm /tmp/*.$時(shí),shell實(shí)際上將該命令解析為rm /tmp/*.408。 記住,該進(jìn)程號(hào)只在當(dāng)前進(jìn)程中唯一。例如,如果我再次運(yùn)行上面的腳本,將會(huì)得到一個(gè)新的進(jìn)程號(hào),因?yàn)槲乙呀?jīng)創(chuàng)建了一個(gè)新的進(jìn)程。
5、如果文件有特殊用途的話,那么創(chuàng)建含有日期的文件,就可以使你很容易地查找到它們。而且還可以很容易地按照日期刪除文件,因?yàn)檫@樣一眼就能看出哪個(gè)文件是最新的,哪個(gè)文件是最“舊”的。 還可以使用這種方法來(lái)快速地創(chuàng)建臨時(shí)文件,它們?cè)诋?dāng)前進(jìn)程中是唯一的。在腳本結(jié)束 之前,也很容易刪除這些臨時(shí)文件。 26.2信號(hào)信號(hào)就是系統(tǒng)向腳本或命令發(fā)出的消息,告知它們某個(gè)的發(fā)生。這些通常是內(nèi)存錯(cuò)誤 ,訪問(wèn)權(quán)限問(wèn)題或某個(gè)用戶試圖停止你的進(jìn)程。信號(hào)實(shí)際上是一些數(shù)字。下表列出了 最常用的信號(hào)及它們的含義。 信號(hào)信 號(hào) 名 含義12391115SIGHUP SIGINT SIGQUIT SIGKILL SIGSEGVSIGTE
6、RM掛起或父進(jìn)程被殺死 來(lái)自鍵盤(pán)的中斷信號(hào),通常是 從鍵盤(pán)退出無(wú)條件終止 段(內(nèi)存)沖突 軟件終止(缺省殺進(jìn)程信號(hào)) 還有信號(hào)0,我們前面在創(chuàng)建.logout文件時(shí)已經(jīng)遇到過(guò)。該信號(hào)為“退出 shell”信號(hào)。為了發(fā)出信號(hào)0,只要從命令行鍵入exit,或在一個(gè)進(jìn)程或命令行中使用即可。 發(fā)送信號(hào)可以使用如下的格式: kill -signal no:| signal name process ID使用kill命令時(shí)不帶任何信號(hào)或名字意味著使用缺省的信號(hào) 15??梢允褂萌缦碌拿盍谐鏊械男盘?hào): 292第五部分 高級(jí)shell編程技巧 下載26.2.1 殺死一個(gè)進(jìn)程 發(fā)送信號(hào)1將使一個(gè)進(jìn)程重新讀入配
7、置文件。例如,你在運(yùn)行域名服務(wù)( DNS)守護(hù)進(jìn)程named,現(xiàn)在你對(duì)域名數(shù)據(jù)庫(kù)文件做了某些修改,這時(shí)不需要?dú)⑺涝撌刈o(hù)進(jìn)程再重新啟動(dòng),只需使用kill -1命令向其發(fā)送信號(hào)1。Named進(jìn)程將重新讀入它的配置文件。 下面的例子向系統(tǒng)中一個(gè)名為 mon_web的進(jìn)程發(fā)送信號(hào)9(無(wú)條件終止)來(lái)殺死它。首先 使用ps命令得到相應(yīng)的進(jìn)程號(hào)。 如果系統(tǒng)不支持ps -ef命令,那么可以使用ps xa。為了殺死該進(jìn)程,我可以使用下面的兩種方法之一: kill -9 157或 kill -s SIGKILL157在有些系統(tǒng)中,不必使用-s,例如: kill SIGKILL 157。 下面的腳本將根據(jù)進(jìn)程名來(lái)殺
8、死一個(gè)進(jìn)程,擬被殺死的進(jìn)程名作為該腳本的一個(gè)參數(shù)。在執(zhí)行相應(yīng)的命令之前,將會(huì)首先檢查是否存在這樣的進(jìn)程。在這里使用 grep命令來(lái)匹配相應(yīng)的進(jìn)程名。如果匹配成功,則向用戶提示進(jìn)程已經(jīng)找到,并詢(xún)問(wèn)用戶是否殺死該進(jìn)程。最后使用kill - 9命令殺死相應(yīng)的進(jìn)程。 下面就是該腳本。 第 26 章 shell 工 具293 下載運(yùn)行該腳本將會(huì)產(chǎn)生如下的輸出: 在使用該腳本時(shí),要確信存在相應(yīng)的進(jìn)程: 26.2.2 檢測(cè)信號(hào) 有些信號(hào)可以被應(yīng)用程序或腳本捕獲,并依據(jù)該信號(hào)采取相應(yīng)的行動(dòng)。另外一些信號(hào)不能獲。例如,如果一個(gè)命令收到了信號(hào) 9,就無(wú)法再捕捉其他信號(hào)。 在編寫(xiě)shell腳本時(shí),只需關(guān)心信號(hào) 1、
9、2、3和15。當(dāng)腳本捕捉到一個(gè)信號(hào)后,它可能會(huì)采取下面三種操作之一: 1) 不采取任何行動(dòng),由系統(tǒng)來(lái)進(jìn)行處理。 2) 捕獲該信號(hào),但忽略它。 294第五部分 高級(jí)shell編程技巧 下載3) 捕獲該信號(hào),并采取相應(yīng)的行動(dòng)。 大多數(shù)的腳本都使用第一種處理方法,這也是到目前為止本書(shū)中所有腳本所采取的處理方法。 如果想要采取另外兩種處理方法,必須使用 trap命令。 26.3traptrap可以使你在腳本中捕捉信號(hào)。該命令的一般形式為: trap name signal(s)其中, name是捕捉到信號(hào)以后所采取的一系列操作。實(shí)際生活中, name一般是一個(gè)專(zhuān)門(mén)用來(lái)處理所捕捉信號(hào)的函數(shù)。 Name需
10、要用雙引號(hào)(“ ”)引起來(lái)。Signal就是待捕捉的信號(hào)。 腳本在捕捉到一個(gè)信號(hào)以后,通常會(huì)采取某些行動(dòng)。最常見(jiàn)的行動(dòng)包括: 1) 清除臨時(shí)文件。 2) 忽略該信號(hào)。 3) 詢(xún)問(wèn)用戶是否終止該腳本的運(yùn)行。 下表列出了一些最常見(jiàn)的trap命令用法: trap 2 3trapcommands 2 3trap 2 3忽略信號(hào)2和信號(hào)3,用戶不能終止該腳本 如果捕捉到信號(hào)2或3,就執(zhí)行相應(yīng)的commands命令復(fù)位信號(hào)2和3,用戶可以終止該腳本 也可以使用單引號(hào)()來(lái)代替雙引號(hào)(“”);其結(jié)果是一樣的。26.3.1 捕獲信號(hào)并采取相應(yīng)的行動(dòng) 下面的例子一經(jīng)運(yùn)行就開(kāi)始計(jì)數(shù)直至用戶按 (信號(hào)2)。這時(shí)該腳
11、本將會(huì)顯示出當(dāng)前的循環(huán)數(shù)字,然后退出。 在本例中trap命令的格式為: trap do_ something signal下面就是該腳本: no:( s)現(xiàn)在讓我們來(lái)仔細(xì)分析一下該腳本。 第 26 章 shell 工 具295 下載trap my_ exit 2在本例中,由于設(shè)置了trap命令,所以在捕捉到信號(hào) 2以后,雙引號(hào)內(nèi)的my_exit函數(shù)將被執(zhí)行。 函數(shù)my_exit將在腳本捕捉到信號(hào) 2后被調(diào)用;用戶將會(huì)看到 $LOOP變量的內(nèi)容,即用戶按時(shí)的計(jì)數(shù)值。在實(shí)際中,通常捕捉到信號(hào) 2后所調(diào)用的函數(shù)是用來(lái)完成清除臨時(shí)文件等任務(wù)的。 下面是該腳本的運(yùn)行結(jié)果: 26.3.2 捕獲信號(hào)并采取行
12、動(dòng)的另一個(gè)例子 下面就是一個(gè)捕獲信號(hào)后清除臨時(shí)文件的例子。 下面的腳本在運(yùn)行時(shí)不斷使用 df和ps命令向臨時(shí)文件HOLD1.$和HOLD2.$中寫(xiě)入相應(yīng)的信息。你應(yīng)該還記得 $表示當(dāng)前的進(jìn)程號(hào)。當(dāng)用戶按 時(shí),這些臨時(shí)文件將被清除。 296第五部分 高級(jí)shell編程技巧 下載上面的腳本在運(yùn)行時(shí)會(huì)產(chǎn)生如下的結(jié)果: 當(dāng)收到信號(hào)2或3時(shí),盡管一般情況下這都不是誤操作,但是為了安全起見(jiàn),不妨給用戶一個(gè)選擇的機(jī)會(huì),這樣用戶在不小心按下 后,仍然可以撤消剛才的動(dòng)作。 在下面的例子中,在腳本捕捉到信號(hào) 2后將會(huì)向用戶提供一個(gè)選擇,詢(xún)問(wèn)用戶是否真的要退出。這里使用case語(yǔ)句來(lái)決定采取何種操作。 如果用戶希望
13、退出,他或她可以選擇 1,此時(shí)當(dāng)前函數(shù)會(huì)以狀態(tài) 1退出,而另一個(gè)清除進(jìn)程將會(huì)據(jù)此啟動(dòng)。如果用戶并不希望退出,那么可以選擇 2或不做任何選擇,此時(shí)case語(yǔ)句將會(huì)使用戶退回到腳本中原來(lái)的地方。在case語(yǔ)句中一定要包含用戶輸入空字符串的情況。 下面的函數(shù)在收到信號(hào)后,將會(huì)向用戶提供選擇: 下面是完整的腳本: 第 26 章 shell 工 具297 下載當(dāng)上面的腳本運(yùn)行時(shí),只要在輸入任何域時(shí)按下 ,就會(huì)得到一個(gè)選擇:是繼續(xù) 運(yùn)行還是退出。 26.3.3 鎖住終端 下面的腳本是另一個(gè)捕獲信號(hào)的例子。該腳本名為 lockit,它將使用一個(gè)連續(xù)不斷的while 循環(huán)鎖住終端。在該腳本中, trap命令捕
14、捉信號(hào)2、3和15。如果一個(gè)用戶試圖中斷該腳本的運(yùn)行,將會(huì)得到一個(gè)不成功的提示。 在腳本初次執(zhí)行時(shí),將會(huì)被提示輸入一個(gè)口令。在解鎖終端時(shí)沒(méi)有任何提示,可以直接輸入口令并按回車(chē)鍵。該腳本會(huì)從終端讀入所輸入的口令,并與預(yù)先設(shè)置的口令做比較,如果一致就解鎖終端。 如果忘記了自己的口令,那么只好登錄到另一個(gè)終端上并殺死該進(jìn)程。在本例中沒(méi)有對(duì)口令的長(zhǎng)度加以限制這完全取決于你。 如果你從另外一個(gè)終端上殺死了該進(jìn)程,當(dāng)再次回到這個(gè)終端時(shí),可能會(huì)遇到終端設(shè)置問(wèn)題,例如回車(chē)鍵不起作用。這時(shí)可以試著使用下面的命令,這樣可以解決大部分問(wèn)題。 $ stty sane下面就是該腳本。 298第五部分 高級(jí)shell編程
15、技巧 下載下面是lockit腳本運(yùn)行時(shí)的輸出: 接著屏幕就被清除。如果按回車(chē)鍵或其他錯(cuò)誤的口令,該腳本將會(huì)輸出: 現(xiàn)在輸入正確的口令: 現(xiàn)在又回到命令提示符下了。26.3.4 忽略信號(hào) 在用戶登錄時(shí),系統(tǒng)將會(huì)執(zhí)行/etc/profile文件,根用戶不希望其他普通用戶打斷這一進(jìn)程。他通常通過(guò)設(shè)置trap來(lái)屏蔽信號(hào)1、2、3和15,然后在用戶讀當(dāng)天的消息時(shí)重新打開(kāi)這些信號(hào)。最后仍然回到屏蔽這些信號(hào)的狀態(tài)。 在編寫(xiě)腳本時(shí)也可以采用類(lèi)似的辦法。在腳本運(yùn)行的某些關(guān)鍵時(shí)刻,比如打開(kāi)了很多文 第 26 章 shell 工 具299 下載件時(shí),不希望該腳本被中斷,以免破壞這些文件。通過(guò)設(shè)置 trap來(lái)屏蔽某些
16、信號(hào)就可以解決這個(gè)問(wèn)題。在這些關(guān)鍵性的處理過(guò)程結(jié)束后,再重新打開(kāi)信號(hào)。 忽略信號(hào)的一般格式為(信號(hào) 9除外): trapsignal no:(s)注意,在雙引號(hào)之間沒(méi)有任何字符,為了重新回到捕捉信號(hào)的狀態(tài),可以使用如下的命令: trapdo something signalno:( s)下面我們來(lái)總結(jié)一下上述方法。 trap 1 2 3 15:忽略信號(hào)。關(guān)鍵性的處理過(guò)程 trapmy_exit 1 2 3 15:重新回到捕捉信號(hào)的狀態(tài),在捕捉到信號(hào)后調(diào)用 my_exit函數(shù)。下面就是一個(gè)這樣的例子,其中的“關(guān)鍵”過(guò)程實(shí)際上是一個(gè) while循環(huán),但它能夠很好 地說(shuō)明這種方法。在第一個(gè)循環(huán)中,通
17、過(guò)設(shè)置 trap來(lái)屏蔽信號(hào),但是在第二個(gè)例子中,又回到捕捉信號(hào)的狀態(tài)。 兩個(gè)循環(huán)都只數(shù)到6,不過(guò)在循環(huán)中使用了一個(gè)sleep命令,這樣就可以有充分的時(shí)間來(lái)實(shí)驗(yàn)中斷該循環(huán)。 下面就是腳本。 300第五部分 高級(jí)shell編程技巧 下載在上面的腳本在運(yùn)行時(shí),如果我們?cè)诘谝粋€(gè)循環(huán)期間按下 ,它不會(huì)有任何反應(yīng), 這是因?yàn)槲覀兺ㄟ^(guò)設(shè)置trap屏蔽了信號(hào);而在第二個(gè)循環(huán)中由于重新回到捕捉信號(hào)的狀態(tài),按 下就會(huì)調(diào)用my_exit函數(shù)。 當(dāng)腳本捕獲到信號(hào)時(shí),通過(guò)使用trap命令,可以更好地控制腳本的運(yùn)行。捕獲信號(hào)并進(jìn)行 處理是一個(gè)腳本健壯性的標(biāo)志。 26.4evaleval命令將會(huì)首先掃描命令行進(jìn)行所有的置換
18、,然后再執(zhí)行該命令。該命令適用于那些一次掃描無(wú)法實(shí)現(xiàn)其功能的變量。該命令對(duì)變量進(jìn)行兩次掃描。這些需要進(jìn)行兩次掃描的變量有時(shí)被稱(chēng)為復(fù)雜變量。不過(guò)我覺(jué)得這些變量本身并不復(fù)雜。 eval命令也可以用于回顯簡(jiǎn)單變量,不一定是復(fù)雜變量。 解釋eval命令是怎么回事的最好辦法就是看幾個(gè)例子。 26.4.1 執(zhí)行含有字符串的命令 我們首先創(chuàng)建一個(gè)名為testf的小文件,在這個(gè)小文件中含有一些文本。接著,將 cat testf賦給變量MYFILE,現(xiàn)在我們echo該變量,看看是否能夠執(zhí)行上述命令。 現(xiàn)在我們將cat testf賦給變量MYFILE。 $ MYFILE“= ca t te st”f 第 26 章
19、 shell 工 具301 下載如果我們echo該變量,我們將無(wú)法列出testf文件中的內(nèi)容。 讓我們來(lái)試一下eval命令,記住eval命令將會(huì)對(duì)該變量進(jìn)行兩次掃瞄。 從上面的結(jié)果可以看出,使用eval命令不但可以置換該變量,還能夠執(zhí)行相應(yīng)的命令。第一次掃描進(jìn)行了變量置換,第二次掃描執(zhí)行了該字符串中所包含的命令 cat testf。 下面是另一個(gè)例子。一個(gè)名為CAT_PASSWD的變量含有字符串“ cat /etc/passwd | more”。 eval 命令可以執(zhí)行該字符串所對(duì)應(yīng)的命令。 eval命令還可以用來(lái)顯示出傳遞給腳本的最后一個(gè)參數(shù)。現(xiàn)在來(lái)看下面的這個(gè)例子。 在運(yùn)行上述腳本時(shí),我們
20、會(huì)看到如下的結(jié)果(你所看到進(jìn)程號(hào)可能會(huì)不一樣):在上面的腳本中, eval命令首先把$#解析為當(dāng)前shell的參數(shù)個(gè)數(shù),然后在第二次掃描時(shí) 得出最后一個(gè)參數(shù)。 26.4.2 給每個(gè)值一個(gè)變量名 可以給一個(gè)值一個(gè)變量名。下面我對(duì)此做些解釋?zhuān)俣ㄓ幸粋€(gè)名為 data的文件: 你希望該文件中的第一列成為變量名,第二列成為該變量的值,這樣就可以: 怎樣才能做到這一點(diǎn)呢?當(dāng)然是使用eval命令。 302第五部分 高級(jí)shell編程技巧 下載我們用data文件的第一行來(lái)解釋上述腳本的執(zhí)行過(guò)程,該腳本讀入“ PC”和“ 486”兩個(gè)詞,把它們分別賦給變量 NAME和TYPE。Eval命令的第一次掃描把NAM
21、E和TYPE分別置換為“PC”和“486”,第二次掃描時(shí)將PC作為變量,并將“ 486”作為變量的值。 下面是運(yùn)行上述腳本的結(jié)果: eval命令并不是一個(gè)在腳本中很常見(jiàn)的命令,但是如果需要對(duì)變量進(jìn)行兩次掃瞄的話,就 要使用eval命令了。 26.5logger命令 系統(tǒng)中含有相當(dāng)多的日志文件。其中的一個(gè)日志文件叫作 messages,它通常位于/var/adm 或/var/log目錄下。一個(gè)名為syslog的配置文件可以用來(lái)定義記錄在messages文件中的消息,這些消息有一定的格式。如果想知道系統(tǒng)中的相應(yīng)配置,可以查看 /etc/syslog.conf文件。該文件中包含了用于發(fā)送各種不同類(lèi)型
22、消息的工具及它們的優(yōu)先級(jí)。 這里我們并不想深入探討UNIX和LINUX是如何向該文件中記錄信息的。我們現(xiàn)在只要知道這些消息有不同的級(jí)別,從信息性的消息到關(guān)鍵性的消息。 還可以使用logger命令向該文件發(fā)送消息。在使用該命令之前,最好查閱連機(jī)手冊(cè),因?yàn)樵诓煌?yīng)商所提供的操作系統(tǒng)上該命令的語(yǔ)法也有所不同。 不過(guò),由于這里只涉及到信息性的消息,因此不必?fù)?dān)心下面的命令不安全。你可能會(huì)出于下列的原因向該文件中發(fā)送消息: 在某一個(gè)特定的時(shí)間段出現(xiàn)的訪問(wèn)或登錄。 你的某些執(zhí)行關(guān)鍵任務(wù)的腳本運(yùn)行失敗。 監(jiān)控腳本的報(bào)告。 下面是/var/adm/messages文件的例子。在系統(tǒng)上所看到的相應(yīng)文件可能和下面的例子有少許差別。 logger命令的一般形式為: logger -p -Ime
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年河南機(jī)電職業(yè)學(xué)院馬克思主義基本原理概論期末考試真題匯編
- 面向新能源應(yīng)用的儲(chǔ)能技術(shù)
- 2025年西安思源學(xué)院馬克思主義基本原理概論期末考試筆試真題匯編
- 2023年軟件設(shè)計(jì)師上午沖刺押題及答案
- 康復(fù)從業(yè)者禮儀培訓(xùn)課件
- 應(yīng)知應(yīng)會(huì)安全培訓(xùn)心得課件
- 應(yīng)用介紹教學(xué)課件
- 西餐廳食材采購(gòu)協(xié)議
- 政務(wù)公開(kāi)咨詢(xún)服務(wù)方案
- 廣告投放2026年效果評(píng)估合同協(xié)議
- 《導(dǎo)游實(shí)務(wù)》課件-3.2出入境知識(shí)、其他相關(guān)知識(shí)
- 4.2《中國(guó)的工業(yè)》教學(xué)設(shè)計(jì)湘教版八年級(jí)地理上冊(cè)
- 部隊(duì)自救互救教學(xué)課件
- 智研咨詢(xún)發(fā)布:中國(guó)整裝衛(wèi)浴行業(yè)市場(chǎng)全景調(diào)查及投資前景預(yù)測(cè)報(bào)告
- 干式變壓器的培訓(xùn)
- 眼科護(hù)士長(zhǎng)年終工作總結(jié)
- 《認(rèn)知覺(jué)醒》讀書(shū)分享
- 學(xué)堂在線 雨課堂 學(xué)堂云 中國(guó)傳統(tǒng)藝術(shù)-篆刻、書(shū)法、水墨畫(huà)體驗(yàn)與欣賞 章節(jié)測(cè)試答案
- 2025國(guó)際經(jīng)濟(jì)法司法考試試題帶答案解釋
- 2025年貴州省委黨校在職研究生招生考試(馬克思主義理論)歷年參考題庫(kù)含答案詳解(5卷)
- 小小工程師小學(xué)課件
評(píng)論
0/150
提交評(píng)論