linux 常用脚本,用到的时候快速修改
2017-09-04 08:38
232 查看
google的一篇关于shell的文章
Google Style Guides-Shell Style Guide(翻译)Shell的一个例子
1.递归遍历递归删除文件夹中的*.exe .out *~文件(因为要往github上面提交acm的一些代码,而自己的acm目录很分成几个网站的代码,有多级子目录,需要把可执行文件删除)#!/bin/bash #递归删除文件夹中的*.exe *.out *~文件 #示例 bash del.sh . function del_file_from_dir(){ for file in `ls $1` do if [ -d $1"/"$file ] then echo $file " is dir" rm -rf $1"/"$file/*.exe $1"/"$file/*.out $1"/"$file/*~ # del_file_from_dir $1"/"$file else echo $file fi done } del_file_from_dir $1
2.访问网站 下载文件(因为要学习hadoop权威指南,需要天气数据所以写了个脚本,从ftp上下载文件,并把文件处理成符合规范的数据)
从ftp://ftp.ncdc.noaa.gov/pub/data/gsod下载的数据是gsod_1901.tar ~ gsod_2016.tar 的数据
#!/bin/bash for i in {1901..2016} do cd /home/Administrator/ncdc/ wget ftp://ftp.ncdc.noaa.gov/pub/data/gsod/$i/gsod_$i.tar done
3.要把文件名字变成1901.tar ~ 2016.tar名字的数据,进而压缩成1901.tar.bz2 ~ 2016.tar.bz2类型的数据。把gsod_1901.tar ~ gsod_2016.tar改成1901.tar.bz2 ~ 2016.tar.bz2
#!/bin/bash #把gsod_*.tar改名为*.tar,并把tar文件压缩成bz2文件 for i in *.tar do nowname=${i:5} #echo "$i" #echo ${nowname} mv "$i" "${nowname}" tar -jcf "${nowname}".bz2 "${nowname}" rm -rf "${nowname}" done
4.要把文件名字变成1901.tar ~ 2016.tar名字的数据,进而压缩成1901.tar.bz2 ~ 2016.tar.bz2类型的数据。把gsod_1901.tar ~ gsod_2016.tar改成1901.tar.bz2 ~ 2016.tar.bz2
测试while循环
# 执行命令并且check # 没执行一次文件翻倍 #/bin/sbin declare -i COUNTER=0 while ((COUNTER<=5)); do let ++COUNTER echo $COUNTER done
测试 每次执行
main2 -i $file1 -o $file2 >> txtfile.log.txt后file1文件变为原来的2倍,并且比较file1和file2的sha1sum值是否相同。
用到的shell知识点
while循环有限次;
shell接受命令执行命令的返回值;
字符串截取文件第4节;
shell的if else fi判断;
shell的变量值声明、初始化、自增;
# 执行命令并且check # 每执行一次文件翻倍 #/bin/sbin file1=file.txt file2=file.txt.out declare -i COUNTER=0 while ((COUNTER<=10)); do runresult=`main2 -i $file1 -o $file2 >> txtfile.log.txt` file1_sha1=`sha1sum $file1` file2_sha1=`sha1sum $file2` file1_sha1=${file1_sha1%% *} #删除空格右边的字符 file2_sha1=${file2_sha1%% *} #删除空格右边的字符 echo '第' $COUNTER "次测试" >> txtfile.log.txt echo -n $file1 "与" $file2 "的sha1sum值相同 ? " >> txtfile.log.txt if [ $file1_sha1 == $file2_sha1 ];then echo "True" >> txtfile.log.txt else echo "False" >> txtfile.log.txt fi echo '\n' >> txtfile.log.txt let ++COUNTER rm -rf *.symbol rm -rf *.esi cat $file1 >> tmp cat tmp > $file1 done
相关文章推荐
- python写的常用脚本,用到的时候快速修改
- 在测试crontab执行脚本的时候,修改了linux的系统时间,crontab不执行了。
- linux - 在写脚本的时候常用的命令
- 详细讲解Linux启动流程及启动用到的配置文件及脚本
- 详细讲解Linux启动流程及启动用到的配置文件及脚本
- 利用shell脚本“综合、集中”查看linux server常用软硬件信息
- 几个常用的Linux监控脚本
- 几个常用的Linux操作系统监控脚本
- linux一键修改mysql密码脚本
- Windows下通过脚本快速修改IP地址
- 几个常用的Linux监控脚本
- Linux新手生存笔记[10]——shell脚本基础3-函数及常用命令
- linux 脚本中常用的判断和循环基础知识
- linux下shell简单修改ip的脚本
- Linux 命令行快速进阶(一)常用命令行
- 几个常用的Linux监控脚本
- Linux常用的服务器监控shell脚本
- 修改编译的脚本的时候突然编译不过去
- Linux常用的系统监控shell脚本
- 常用的Linux 命令 -- 修改主机名和ip地址