- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 $count2.在目录/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
done3.把文件b中有的,但是文件a中没有的所有行,保存为文件c,并统计c的行数。grep -vf a b | c
grep -vf a b | wc -l4.判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下read -p input a file: file
if [ -c $file -o -b $file ];then
cp $file /dev/
fi5.每隔10分钟监控一次,监控/usr下如果大于5G,发邮件给管理员#!/bin/bashwhile 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/bashif [ $# = 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
fi9.判断一个数是不是完数。打印出1-1000之间的完数。 完数就是约数的和等于自身2倍的数。(6,28,496)#!/bin/bashsub(){??? 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=1while [ $num -le 1000 ]do??? sub??? let num = num+1done
(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
done10.在某个文件夹下查找含有指定字符串的文件#!/bin/bash
for file in `ls $2`
do
f=`grep -l $1 $2$file`
echo $f
done调用方法:./tst 00
您可能关注的文档
- Q3007B-SM20背压机调速系统Q3007B-SM20背压机调速系统.pdf
- Q235钢在不同应力-温度路径下材料性能的试验研究和本构关系Q235钢在不同应力-温度路径下材料性能的试验研究和本构关系.pdf
- QA-NET说明资料QA-NET说明资料.pdf
- QB-CNCEC J050104-2004 室内消防喷淋系统安装工艺标准QB-CNCEC J050104-2004 室内消防喷淋系统安装工艺标准.pdf
- QB-MINI2 使用前需知QB-MINI2 使用前需知.pdf
- QBYDQ-AF01.707.4-2010汽车电气、电子组件系统可靠性试验方法及要求 第4部分 气候负荷QBYDQ-AF01.707.4-2010汽车电气、电子组件系统可靠性试验方法及要求 第4部分 气候负荷.pdf
- QBYDQ-AF01.707.5-2010 汽车电气、电子组件系统可靠性试验方法及要求 第5部分 化学负荷QBYDQ-AF01.707.5-2010 汽车电气、电子组件系统可靠性试验方法及要求 第5部分 化学负荷.pdf
- QC080000标准QC080000标准.pdf
- QC080000质量手册(2013年04月)QC080000质量手册(2013年04月).pdf
- QCC活动导引QCC活动导引.ppt
文档评论(0)