欢迎来到天天文库
浏览记录
ID:9270191
大小:33.85 KB
页数:5页
时间:2018-04-25
《经典shell编程实例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、经典shell编程实例如何远程杀死僵进程?所谓"僵进程"是指处于睡眠中,而且没用的进程。在进行并行计算时经常会有僵进程产生。由于用top看不到"僵进程",所以写了如下一个叫做"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"*"如何将一个index文件中的空链接删除?在目录/doc/Art_and_Photos/photo/NASA-Astronomy_Picture_of_the_Day中只有有限的几个文件,而archivepix.html文件中却链接了两千多个文件,我们的目标就是
5、要把不存在的文件链接删除掉。#!/bin/tcsh-f#从当前目录中查找有哪些可用文件。find不支持正则表达式{}settmp=`find.-typef-maxdepth1vuDLinux联盟-name"ap[0-9][0-9][0-9][0-9][0-9][0-9].html"`#将查找结果./ap000303.html转换为ap000303.htmlsetff1=`echo$tmp
6、sed-e's/./(ap[0-9]{6}.html)//g'`#在文件archivepix.html
7、中查找包含类似ap000303.html的行,vuDLinux联盟并将其导入临时文件ftmp中grep'ap[0-9]{6}.html'archivepix.htmlftmp#将ftmp中的每一行转换为ap000303.html的形式,这样ff1和ff2vuDLinux联盟中的字符串在形式上就是相同的了。setff2=`sed-e's/.*(ap[0-9]{6}.html).*//g'ftmp`rmftmp-f#比较变量ff1和ff2的内容,如果一个字符串只存在于ff2中,vuDLinux联
8、盟那么就把文件archivepix.html中含有#该字符串的行删除掉。foreachf2($ff2)echo$f2setflag=0foreachf1($ff1)if($f2==$f1)thensetflag=1endifendif($flag==0)thensed-e'/'$f2'/d'archivepix.htmlftmp#此句最关键之处在于'$f2'vuDLinux联盟可用于正则表达式。mvftmparchivepix.html-fendifend如何将一个目录中的所有文件链接到网页中?只要将下列程
9、序的输出导到一个文件中,再将其拷至网页的相应位置就可以了。这里最关键的是看双引号如何输出(")。#!/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、理解,我将其改写为tcsh格式,并将其置于脚本文件之中,更利于使用。#!/bin/tcsh-f#-f说明直接运行该文件,而不会先运行.cshrc进行初始化rmtmp_file-f#确保该文件不存在foreachfold(*.jpg.*)setfnew=`echo$fold
11、sed-e"s/.jpg.(.*)/-.jpg/g"`vuDLinux联盟#精华之处echo"mv$fold$fnew-f"tmp_fileendchmoda+xtmp_file./tmp_filermtmp_file-f在这个脚
12、本文件中,关键是"精华之处"。它的意义是:首先将要修改的文件名($fold)通过管道(
13、)传给流编辑器(sed),流编辑器对文件名进行处理,其各项的具体意义为:setfnew=`echo$fold
14、sed-e"s/.jpg.(.*)/-.jpg/g"`sed-e命令+选项表示允许多点编辑s/re/string/用string替换正则表达式re/.jpg.(.*)/vuDLinux联盟"."表示一
此文档下载收益归作者所有