shell编程实例集锦.doc_第1页
shell编程实例集锦.doc_第2页
shell编程实例集锦.doc_第3页
shell编程实例集锦.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

shell编程实例集锦【ZT】shell编程实例集锦如何远程杀死僵进程?所谓“僵进程”是指处于睡眠中,而且没用的进程。在进行并行计算时经常会有僵进程产生。由于用 top 看不到“僵进程”,所以写了如下一个叫做“rkill”的 shell 文件:#!/bin/tcshecho Input start number of node: set N1=$echo Input end number of node: set N2=$echo Input the NAME of programset pname=$echo *while($N1 ftmp# 将 ftmp 中的每一行转换为 ap000303.html 的形式,这样 ff1 和 ff2 vuDLinux联盟中的字符串在形式上就是相同的了。set ff2 = sed -e s/.*(ap0-96.html).*/1/g ftmprm ftmp -f# 比较变量 ff1 和 ff2 的内容,如果一个字符串只存在于 ff2 中,vuDLinux联盟那么就把文件 archivepix.html 中含有# 该字符串的行删除掉。foreach f2 ($ff2) echo $f2 set flag=0 foreach f1 ($ff1) if ($f2 = $f1) then set flag=1 endif end if($flag = 0) then sed -e /$f2/d archivepix.html ftmp # 此句最关键之处在于$f2vuDLinux联盟可用于正则表达式。 mv ftmp archivepix.html -f endifend 如何将一个目录中的所有文件链接到网页中?只要将下列程序的输出导到一个文件中,再将其拷至网页的相应位置就可以了。这里最关键的是看双引号如何输出()。#!/bin/tcsh -fset dd = /doc/Art_and_Photos/Flash/flash/AGuiset ffff = find $dd -type f set n=0foreach f ($ffff) n+echo $fecho a href=$f$n, AGui.htmlend 如何为一堆文件换名字?在吴老师的笔记心得中介绍了张林波的高招,但那是 bash 的,而且是以命令行形式给出的。为了便于理解,我将其改写为 tcsh 格式,并将其置于脚本文件之中,更利于使用。#!/bin/tcsh -f # -f 说明直接运行该文件,而不会先运行 .cshrc 进行初始化rm tmp_file -f # 确保该文件不存在foreach fold (*.jpg.*)set fnew = echo $fold | sed -e s/.jpg.(.*)/-1.jpg/g vuDLinux联盟# 精华之处echo mv $fold $fnew -f tmp_fileendchmod a+x tmp_file./tmp_filerm tmp_file -f 在这个脚本文件中,关键是“精华之处”。它的意义是:首先将要修改的文件名($fold)通过管道( | ) 传给流编辑器(sed),流编辑器对文件名进行处理,其各项的具体意义为:set fnew = echo $fold | sed -e s/.jpg.(.*)/-1.jpg/g sed -e 命令+选项 表示允许多点编辑s/re/string/ 用 string 替换正则表达式 re/.jpg.(.*)/ vuDLinux联盟“.”表示一个真正的点,“.jpg.” 代表文件名中的“ .jpg.”;vuDLinux联盟“(.*)” 中的.匹配一个非换行符的字符,*匹配 0 个或多个“先前”字符, 它与 shell 的通配符完全不同,shell 的通配符代表 0 个或多个“任意”字符。 “.*”所代表的内容被设为“标签 1”,可在需要的地方用“1”引用。值得注意 的是:“.*”决不能用“*”来代替,因为“*”将表示任意个“.”。/-1.jpg/ “1”代表“标签 1”的内容g 表示行内全面替换 这里还有一个地方需要提醒,那就是将 echo . 引起来的不是单引号,而是键盘左上角标有 “ ”上的撇号.如何解决网页中字体放大时出现重叠的问题?方案一:适用于单层目录#!/bin/tcsh -fset dir=ls .foreach d ($dir) if( -d $d) then # 判断是否为目录 cd $d echo cd $d foreach f (*.htm *.html) sed -e /0-9pt/d $f ftmp # 删除所有包含 9pt、12pt 等关键词的行 mv ftmp $f -f end cd . endifend 方案二:适用于多层目录#!/bin/tcsh -fset SearchPath = /doc/Reading/everything/武侠/梁羽生set files=find $SearchPath -type f -name *.htm* foreach f ($files) echo $f sed -e /0-9pt/d $f ftmp mv ftmp $f -fend 如何将一个目录中所有文件名由大写变为小写我们以目录 tmp 为例1. 进入 tmp 目录的上一级目录2. zip -r tmp.zip tmp/*3. mv tmp tmp-old (这是为了安全起见,此处也可改为 rm -r -f tmp )4. unzip -LL tmp.zip 这样,tmp 目录中的文件名就全改为小写了。在确认无误后,可将 tmp-old 目录删除。如何将一个文件中的内容由大写变为小写最简单的做法是在 /.cshrc 中设如下命令:alias tr tr A-Z a-zttttmp; mv ttttmp !* -f 此处别名必须为 tr,其他的就不行,不知为什么。当需要对文件进行操作时,敲如下命令:tr filename 该命令在命令行中运行没有任何问题,但是如果将其放在一个 shell script 文件中,然后将该文件的属性改为可执行并执行之的话,你会发现用 alias 设置的简化命令全部失效。解决办法为:source shell_file 此处还顺便说一句,sh 命令运行的是 bash 文件。如何使系统每隔大约3小时自动激活一次声卡1. 由于我们所用的声卡驱动程序是一个试用版的,在一星期以内,它有3小时的有效时间(尚可接受)。但超过一个星期以后,有效时间就只有20分钟了,那是绝对无法忍受的!吴首教为此感到义愤填膺,于2003年9月1日“坐台”完毕后,组建攻关小组并亲自挂帅,带领组员王某人经过“极其艰苦” 的奋斗,终于攻克了这一难题。短命的攻关小组在完成了其历史使命,并开完“非典声卡激活经验总结表彰大会”后,就地解散。茫茫天地间只留下了如下解决方案:(1) 建立 shell 脚本文件 opensound#!/bin/tcsh -fwhile(1)set datesave=date +%m%d%H%M%Ydate 082500002003/usr/lib/oss/soundoff/usr/lib/oss/soundondate $datesavesleep 10800end (2) 将 opensound 的属性改为所有人均可执行, 命令为:chmod a+x opensound (3) 将 opensound 拷贝至 /usr/local/bin(4) 在 /etc/rc.d/rc.local 中加入/usr/local/bin/opensound &/dev/null& (5) 重新启动计算机。然后我们就能永远听到美妙的声音啦! (此事又一次证明: 道高一尺, 魔高一丈!)2. 曾经我以为这一问题已圆满解决,但在使用过程中却问题多多,人生最痛苦的事莫过如此。究其原因,都是 soundoff 惹得祸。为了声音永驻,我将不惜 CPU 时间与其试比高。#!/bin/tcsh -fset datesave=date +%m%d%H%M%Ydate 082500002003/usr/lib/oss/soundoff/usr/lib/oss/soundondate $datesavesleep 8000 # 以上是为了在系统启动时激活声卡while(1) /usr/lib/oss/soundoff & out set flag=cat out rm out -f set N=0 if($flag != ) then # flag 不是空串说明 soundoff 执行失败 while(2) N+ /usr/lib/oss/soundoff & out set flag=cat out rm out -f if(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论