shell编程案例shell编程案例.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
shell编程案例shell编程案例

1.查找当前目录中所有大于500M的文件,把这些文件名写到一个文本文件中,并统计其个数。 #!/bin/bash count=0 for file in `find ./ -size +51200k` do count=`expr $count + 1` echo $file new done echo $count 2.在目录/tmp下找到100个以abc开头的文件,然后把这些文件的第一行保存到文件new中。 #!/bin/bashcount=0 for file in `find /tmp -name abc*` do head -n1 $filenew count=`expr $count+1 ` if [ $count -gt 100 ];then break fi done 3.把文件b中有的,但是文件a中没有的所有行,保存为文件c,并统计c的行数。 grep -vf a b | c grep -vf a b | wc -l 4.判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下 read -p input a file: file if [ -c $file -o -b $file ];then cp $file /dev/ fi 5.每隔10分钟监控一次,监控/usr下如果大于5G,发邮件给管理员 #!/bin/bash while true do n=`du -s /usr|cut -f1` if [ $n -gt 1 ];then mail -s greater295322935@c fi sleep 600 done 6.从a.log文件中提取包含WARNING或FATAL,同时不包含IGNOR的行,然后提取以:分割的第5个字段 grep -E WARNING|FATAL a.log |grep -v IGNOR |cut -f5 -d: 7.编写一个脚本,进行简单的减法运算,要求提示输入变量 #!/bin/bash if [ $# = 2 ];then num3=`expr $1 - $2 ` else read -p input a number: num1 read -p input another number: num2 num3=`expr $num1 - $num2 ` fi echo $num3 8.把某个目录下的文件扩展名改为bat,再以时间为文件名压缩打包存放到某个目录。 #!/bin/bash if test $# -eq 1 -a -d $1 ;then for file in `ls $1` do mv $file $file.bat done filename=date+%y%m%d tar -cjvf $filename.tar.bz2 else echo input dir read dir for file in `ls $dir` do mv $file $file.bat done filename=date+%y%m%d tar -cjvf $filename.tar.bz2 fi 9.判断一个数是不是完数。打印出1-1000之间的完数。 完数就是约数的和等于自身2倍的数。(6,28,496) #!/bin/bash sub() { ??? i=1; ??? sum=0; ??? while [ $i -le $num ] ??? do ??? ??? let m=num%i ??? ??? if [ $m -eq 0 ] ??? ??? then ??? ??? ??? let sum=sum+i ??? ??? fi ??? ??? let i=i+1 ??? done ??? let a=2*num ??? if [ $a -eq $sum ] ??? then ??? ??? echo $num ??? fi } num=1 while [ $num -le 1000 ] do ??? sub ??? let num = num+1 done (2) #!/bin/bash for((i=1;i=1000;i++)) do sum=0 for((j=1;j=i;j++)) do m=`expr $i % $j` if [ $m -eq 0 ];then sum=`expr $sum + $j` fi done y=`expr $i \* 2 ` if [ $y -eq $sum ];then echo $i fi done 10.在某个文件夹下查找含有指定字符串的文件 #!/bin/bash for file in `ls $2` do f=`grep -l $1 $2$file` echo $f done 调用方法:./tst 00

您可能关注的文档

文档评论(0)

vshoulrengb3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档