shell编程实例集锦_shell编程实例

其他范文 时间:2020-02-28 02:25:06 收藏本文下载本文
【www.daodoc.com - 其他范文】

shell编程实例集锦由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“shell编程实例”。

shell

编程实

例集锦

【ZT】

shell编程实例集锦 如何远程杀死僵进程?

所谓“僵进程”是指处于睡眠中,而且没用的进程。在进行并行计算时经常会有僵进程产生。由于用 top 看不到“僵进程”,所以写了如下一个叫做“rkill”的 shell 文件: #!/bin/tcshecho “ Input start number of node: ”set N1=“$

h='t'$N1 set ppid=`rsh $h ps-ef | grep $pname | awk '{print $2}' ` echo ”rsh $h kill $ppid“ rsh $h kill $ppid @ N1++endecho

”**********************************************************“

如何将一个 index 文件中的空链接删除?

在目录 /doc/Art_and_Photos/photo/NASA-Astronomy_Picture_of_the_Day 中只有有限的几个文件,而 archivepix.html 文件中却链接了两千多个文件,我们的目标就是要把不存在的文件链接删除掉。

#!/bin/tcsh-f# 从当前目录中查找有哪些可用文件。find 不支持正则表达式 {}set tmp=`find.-type f-maxdepth 1 vuDLinux联盟

-name ”ap[0-9][0-9][0-9][0-9][0-9][0-9].html“ `# 将查找结果./ap000303.html 转换为 ap000303.htmlset ff1=`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 和 ff2 vuDLinux联盟 中的字符串在形式上就是相同的了。set ff2 = ` sed-e 's/.*(ap[0-9]{6}.html).*/1/g' ftmp`rm 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 # 此句最关键之处在于

'$f2'vuDLinux联盟

可用于正则表达式。mv ftmp archivepix.html-f endifend

如何将一个目录中的所有文件链接到网页中? 只要将下列程序的输出导到一个文件中,再将其拷至网页的相应位置就可以了。这

编程实

例集锦

【ZT】 shell编程实例集锦

里最关键的是看双引号如何输出(”)。

#!/bin/tcsh-fset dd = “/doc/Art_and_Photos/Flash/flash/AGui”set ffff = `find $dd-type f `set n=0foreach f($ffff)@ n++echo $fecho ''>> 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-9]pt/d' $f > ftmp # 删除所有包含 9pt、12pt 等关键词的行 mv ftmp $f-f end cd..endifend

方案二:适用于多层目录

编程实

例集锦

【ZT】 shell编程实例集锦

#!/bin/tcsh-fset SearchPath = “/doc/Reading/everything/武侠/梁羽生”set files=`find $SearchPath-type f-name “*.htm*” `foreach f($files)echo $f sed-e '/[0-9]pt/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%Y`date

082500002003/usr/lib/o/soundoff/usr/lib/o/soundondate $datesavesleep

编程实

例集锦

【ZT】

10800endshell编程实例集锦

(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%Y`date

082500002003/usr/lib/o/soundoff/usr/lib/o/soundondate $datesavesleep 8000 # 以上是为了在系统启动时激活声卡while(1)/usr/lib/o/soundoff >& out set

flag=`cat out` rm out-f set N=0 if(“$flag”!= “”)then # flag 不是空串说明 soundoff 执行失败 while(2)@ N++ /usr/lib/o/soundoff >& out set flag=`cat out` rm out-f if(“$flag” == “”)then echo “soundoff succeed” break else echo “$N soundoff failed” sleep 5 endif end endif set datesave=`date +%m%d%H%M%Y` date

082500002003 /usr/lib/o/soundon date $datesave sleep 8000end

shell编程

shell的作用: 是一个软件, 一个cli, 一门解释型的面向过程的程序设计语言shell如何解析一个完整的命令行? 命令行的处理过程如下:1.历史命令替换2.命令行拆分为token(单词)(......

LinuxShell脚本编程实例

#! /bin/sh echo "Current command is $0" echo "The first parameter is $1" echo "The second parameter is $2" echo "The third parameter is $3" echo "Total......

三菱PLC编程实例

三菱PLC编程实例可编程控制器控制实例 1 十字路口红绿灯控制【动作要求】一般十字路口红绿灯控制,依下所列之条件动作。I/O 组件:红灯 黄灯 绿灯 绿灯闪烁 东西向 Y0 Y1 Y2......

MFC编程实例_目录

目录译者序前言第一部分基础知识第1章窗口 21.1窗口和API环境 21.1.1三种类型窗口21.1.2客户区和非客户区 31.2窗口和MFC环境 41.3怎样应用MFC创建一个窗口 51.4怎样使用MFC......

MATLAB游戏编程实例(拼

MATLAB游戏编程实例(拼图)这是一个简单的游戏,只要把数字按顺序排好就可以了。游戏方法是用鼠标点中数字,如果该数字相邻的格子为空,则自动移到到该空格。本程序是由realghost编......

下载shell编程实例集锦word格式文档
下载shell编程实例集锦.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文