經(jīng)典shell編程實(shí)例

經(jīng)典shell編程實(shí)例

ID:9270191

大?。?3.85 KB

頁(yè)數(shù):5頁(yè)

時(shí)間:2018-04-25

經(jīng)典shell編程實(shí)例_第1頁(yè)
經(jīng)典shell編程實(shí)例_第2頁(yè)
經(jīng)典shell編程實(shí)例_第3頁(yè)
經(jīng)典shell編程實(shí)例_第4頁(yè)
經(jīng)典shell編程實(shí)例_第5頁(yè)
資源描述:

《經(jīng)典shell編程實(shí)例》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、經(jīng)典shell編程實(shí)例如何遠(yuǎn)程殺死僵進(jìn)程?所謂"僵進(jìn)程"是指處于睡眠中,而且沒(méi)用的進(jìn)程。在進(jìn)行并行計(jì)算時(shí)經(jīng)常會(huì)有僵進(jìn)程產(chǎn)生。由于用top看不到"僵進(jìn)程",所以寫(xiě)了如下一個(gè)叫做"rkill"的shell文件:#!/bin/tcshecho"Inputstartnumberofnode:"setN1="_FCKpd_0lt;"echo"Inputendnumberofnode:"setN2="_FCKpd_0lt;"echo"InputtheNAMEofprogram"setpname="_FCKpd_0lt;

2、"echo"*"while($N1=$N2)seth='t'$N1setppid=`rsh$hps-ef

3、grep$pname

4、awk'{print}'`echo"rsh$hkill$ppid"rsh$hkill$ppid@N1++endecho"*"如何將一個(gè)index文件中的空鏈接刪除?在目錄/doc/Art_and_Photos/photo/NASA-Astronomy_Picture_of_the_Day中只有有限的幾個(gè)文件,而archivepix.html文件中卻鏈接了兩千多個(gè)文件,我們的目標(biāo)就是

5、要把不存在的文件鏈接刪除掉。#!/bin/tcsh-f#從當(dāng)前目錄中查找有哪些可用文件。find不支持正則表達(dá)式{}settmp=`find.-typef-maxdepth1vuDLinux聯(lián)盟-name"ap[0-9][0-9][0-9][0-9][0-9][0-9].html"`#將查找結(jié)果./ap000303.html轉(zhuǎn)換為ap000303.htmlsetff1=`echo$tmp

6、sed-e's/./(ap[0-9]{6}.html)//g'`#在文件archivepix.html

7、中查找包含類似ap000303.html的行,vuDLinux聯(lián)盟并將其導(dǎo)入臨時(shí)文件ftmp中g(shù)rep'ap[0-9]{6}.html'archivepix.htmlftmp#將ftmp中的每一行轉(zhuǎn)換為ap000303.html的形式,這樣ff1和ff2vuDLinux聯(lián)盟中的字符串在形式上就是相同的了。setff2=`sed-e's/.*(ap[0-9]{6}.html).*//g'ftmp`rmftmp-f#比較變量ff1和ff2的內(nèi)容,如果一個(gè)字符串只存在于ff2中,vuDLinux聯(lián)

8、盟那么就把文件archivepix.html中含有#該字符串的行刪除掉。foreachf2($ff2)echo$f2setflag=0foreachf1($ff1)if($f2==$f1)thensetflag=1endifendif($flag==0)thensed-e'/'$f2'/d'archivepix.htmlftmp#此句最關(guān)鍵之處在于'$f2'vuDLinux聯(lián)盟可用于正則表達(dá)式。mvftmparchivepix.html-fendifend如何將一個(gè)目錄中的所有文件鏈接到網(wǎng)頁(yè)中?只要將下列程

9、序的輸出導(dǎo)到一個(gè)文件中,再將其拷至網(wǎng)頁(yè)的相應(yīng)位置就可以了。這里最關(guān)鍵的是看雙引號(hào)如何輸出(")。#!/bin/tcsh-fsetdd="/doc/Art_and_Photos/Flash/flash/AGui"setffff=`find$dd-typef`setn=0foreachf($ffff)@n++echo$fecho'ahref='"$f"''$n',/a'AGui.htmlend如何為一堆文件換名字?在吳老師的筆記心得中介紹了張林波的高招,但那是bash的,而且是以命令行形式給出的。為了便于

10、理解,我將其改寫(xiě)為tcsh格式,并將其置于腳本文件之中,更利于使用。#!/bin/tcsh-f#-f說(shuō)明直接運(yùn)行該文件,而不會(huì)先運(yùn)行.cshrc進(jìn)行初始化rmtmp_file-f#確保該文件不存在foreachfold(*.jpg.*)setfnew=`echo$fold

11、sed-e"s/.jpg.(.*)/-.jpg/g"`vuDLinux聯(lián)盟#精華之處echo"mv$fold$fnew-f"tmp_fileendchmoda+xtmp_file./tmp_filermtmp_file-f在這個(gè)腳

12、本文件中,關(guān)鍵是"精華之處"。它的意義是:首先將要修改的文件名($fold)通過(guò)管道(

13、)傳給流編輯器(sed),流編輯器對(duì)文件名進(jìn)行處理,其各項(xiàng)的具體意義為:setfnew=`echo$fold

14、sed-e"s/.jpg.(.*)/-.jpg/g"`sed-e命令+選項(xiàng)表示允許多點(diǎn)編輯s/re/string/用string替換正則表達(dá)式re/.jpg.(.*)/vuDLinux聯(lián)盟"."表示一

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。