shell编程实例集锦.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:4 大小:39KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

shell编程实例集锦.doc

shell编程实例集锦.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

shell编程实例集锦【ZT】shell编程实例集锦如何远程杀死僵进程?所谓“僵进程”是指处于睡眠中,而且没用的进程。在进行并行计算时经常会有僵进程产生。由于用top看不到“僵进程”,所以写了如下一个叫做“rkill”的shell文件:#!/bin/tcshecho"Inputstartnumberofnode:"setN1="$<"echo"Inputendnumberofnode:"setN2="$<"echo"InputtheNAMEofprogram"setpname="$<"echo"**********************************************************"while($N1<=$N2)seth='t'$N1setppid=`rsh$hps-ef|grep$pname|awk'{print$2}'`echo"rsh$hkill$ppid"rsh$hkill$ppid@N1++endecho"**********************************************************"如何将一个index文件中的空链接删除?在目录/doc/Art_and_Photos/photo/NASA-Astronomy_Picture_of_the_Day中只有有限的几个文件,而archivepix.html文件中却链接了两千多个文件,我们的目标就是要把不存在的文件链接删除掉。#!/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|sed-e's/\.\/\(ap[0-9]\{6\}\.html\)/\1/g'`#在文件archivepix.html中查找包含类似ap000303.html的行,vuDLinux联盟并将其导入临时文件ftmp中grep'ap[0-9]\{6\}\.html'archivepix.html>ftmp#将ftmp中的每一行转换为ap000303.html的形式,这样ff1和ff2vuDLinux联盟中的字符串在形式上就是相同的了。setff2=`sed-e's/.*\(ap[0-9]\{6\}\.html\).*/\1/g'ftmp`rmftmp-f#比较变量ff1和ff2的内容,如果一个字符串只存在于ff2中,vuDLinux联盟那么就把文件archivepix.html中含有#该字符串的行删除掉。foreachf2($ff2)echo$f2setflag=0foreachf1($ff1)if($f2==$f1)thensetflag=1endifendif($flag==0)thensed-e'/'$f2'/d'archivepix.html>ftmp#此句最关键之处在于'$f2'vuDLinux联盟可用于正则表达式。mvftmparchivepix.html-fendifend如何将一个目录中的所有文件链接到网页中?只要将下列程序的输出导到一个文件中,再将其拷至网页的相应位置就可以了。这里最关键的是看双引号如何输出(")。#!/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的,而且是以命令行形式给出的。为了便于理解,我将其改写为tcsh格式,并将其置于脚本文件之中,更利于使用。#!/bin/tcsh-f#-f说明直接运行该文件,而不会先运行.cshrc进行初始化rmtmp_file-f#确保该文件不存在foreachfold(*.jpg.*)setfnew=`echo$fold|sed-e"s/\.jpg\.\(.*\)/-\1.jpg/g"`vuDLinux联盟#精华之处echo"mv$fold$fnew-f">>tmp_fileendchmoda+xtmp_file./tmp_filermtmp_file-f在这个脚本文件中,关键是“精华之处”。它的意义是:首先将要修改的文件名($fold)通过管道(|)传给流编辑器(sed),流编辑器对文件名进行处理,其各项的具体意义