最近利用业余时间学习了shell 并做了个例子

实现的功能是 : 监听demo文件夹下的文件,只要新增了  .js的文件就把对应的文件名重组,拼接, 最后写入到demo.js里面.

文件结构如下 :

demo.sh代码如下

while : ;
do
if [ -f oldfiles.log ]
then
#按照时间排序 并取第一行 就是最新建的文件
newfile=` ls -t | head -1 `
#查找到最新建的文件 如果不存在 就抛出错误到dev/null(无底洞)
cat oldfiles.log | grep $newfile >/dev/null
#如果上一条命令执行后的结束代码不是0则执行下面的命令
if [ $? -eq 1 ]
then
echo "there is a new file: $newfile"
# 先把.js结尾的文件获取到 就是只监控js文件
if [ "${newfile##*.}"x = "js"x ]
then
#再判断是 class 开头的还是 route 开头的
newfilehead=`echo $newfile | cut -d . -f 1`
val_class='class'
val_route='route'
#如果是route开头的文件
#ecui.esr.loadRoute(‘smile.monkey’);
if [ "$newfilehead"x = "route"x ]
then
# echo $newfile
noHeadStr=`echo ${newfile#*.}`
noTailStr=`echo ${noHeadStr%.*}`
# echo "ecui.esr.loadRoute(‘"${noTailStr}"’);" >>demo.js
echo "ecui.esr.loadRoute('"${noTailStr}"');" >>demo.js
fi
#如果是class开头的文件
#ecui.esr.loadClass(‘smile.monkey’);
if [ "$newfilehead"x = "class"x ]
then
# echo $newfile
noHeadStr=`echo ${newfile#*.}`
# echo $noHeadStr
noTailStr=`echo ${noHeadStr%.*}`
echo $noTailStr
cat demo.js >oldfiles.log
echo "ecui.esr.loadClass('"${noTailStr}"');" >demo.js
cat oldfiles.log | while read line
do
echo $line>>demo.js
done
rm oldfiles.log
fi
fi
echo $newfile >> oldfiles.log
else
echo "there is no new files"
fi
else
ls -t -r > oldfiles.log
echo "cache old files info"
fi
sleep 1; done;

执行demo.sh之后 会无限循环执行 达到遍历的目的.

最后总结:合理使用shell 能帮助我们自动化完成好多任务 ,提高工作效率

如果没有shell基础的同学先看看一下链接 稍微学习下shell:

shell 的菜鸟教程:   http://www.runoob.com/linux/linux-shell.html

shell截取字符串: http://www.jb51.net/article/56563.htm

shell 字符串比较:  https://www.cnblogs.com/wangkongming/p/4221503.html

shell遍历文件目录,监听文件变化,拼接字符串的更多相关文章

  1. 利用WatchService监听文件变化

    在实现配置中心的多种方案中,有基于JDK7+的WatchService方法,其在单机应用中还是挺有实践的意义的. 代码如下: package com.longge.mytest; import jav ...

  2. 如何使用NodeJs来监听文件变化

    1.前言 在我们调试修改代码的时候,每修改一次代码,哪怕只是很小的修改,我们都需要手动重新build文件,然后再运行代码,看修改的效果,这样的效率特别低,对于开发者来说简直不能忍. 2.构建自动编译工 ...

  3. node.js监听文件变化

    前言 随着前端技术的飞速发展,前端开发也从原始的刀耕火种,向着工程化效率化的方向发展.在各种开发框架之外,打包编译等技术也是层出不穷,开发体验也是越来越好.例如HMR,让我们的更新可以即时可见,告别了 ...

  4. gulp监听文件变化,并拷贝到指定目录

    暂时不支持目录修改.创建.删除var gulp = require('gulp'); var fs = require('fs'); var path = require('path'); var l ...

  5. gulp监听文件变化,并拷贝到指定目录(转)---参考记录

    ###暂时不支持目录修改.创建.删除.var gulp = require('gulp'); var fs = require('fs'); var path = require('path'); v ...

  6. Java NIO.2 使用Path接口来监听文件、文件夹变化

    Java7对NIO进行了大的改进,新增了许多功能: 对文件系统的访问提供了全面的支持 提供了基于异步Channel的IO 这些新增的IO功能简称为 NIO.2,依然在java.nio包下. 早期的Ja ...

  7. 【转载】java 监听文件或者文件夹变化的几种方式

    1.log4j的实现的文件内容变化监听 package com.jp.filemonitor; import org.apache.log4j.helpers.FileWatchdog; public ...

  8. gulp之sass 监听文件,自动编译

    gulpfile.js文件如下: var gulp = require('gulp'); var sass = require('gulp-sass'); gulp.task('default', f ...

  9. 玩转gulp之watch监听文件自动编译

    博客移至 https://www.dodoblog.cn/blog?id=5befc928e0feb34495b57035 我们在写页面的时候,用到sass less等css预处理器的时候,虽然写的很 ...

随机推荐

  1. UBIFS 术语

    B+ tree: base head: budgeting: 空闲空间评估 bud: 一个日志使用的eraseblock cnode: commit: 更新index到flash上的过程 commit ...

  2. 脑科学对基金经理的八个启示 z

    脑科学对基金经理的八个启示 第一,总想要更多.人类大脑是在物资奇缺过程中进化的,所以获得任何“资源”,如食物.性.金钱等,都可以让人感觉良好,大脑也会鼓励我们继续下去. 事实上,可卡因等药物就是“绑架 ...

  3. VUE的进阶 标签属性数据绑定和拼接

    在vue官网把文档扫了一遍后,就开始写网站项目了,没有设计,就百度里找了一个h5的助赢软件的网站把他copy下来,想想有点坏了,接着把内容改改吧.首先开始做一个列表展示vue实例好后,给对象添加默认数 ...

  4. etcd:从应用场景到实现原理的全方位解读

    随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐 渐为开发人员所关注.在云计算时代,如何让服务快速透明地接入到 ...

  5. Linux如何查看当前占用CPU或内存最多的几个进程

    1. ps命令 ps -aux | sort -k4nr | head -N *命令详解: 1. head:-N可以指定显示的行数,默认显示10行. 2. ps:参数a指代all——所有的进程,u指代 ...

  6. 【OpenGL4.0】GLSL渲染语言入门与VBO、VAO使用:绘制一个三角形 【转】

    http://blog.csdn.net/xiajun07061225/article/details/7628146 以前都是用Cg的,现在改用GLSL,又要重新学,不过两种语言很多都是相通的. 下 ...

  7. OpenGL投影矩阵【转】

    OpenGL投影矩阵 概述 透视投影 正交投影 概述 计算机显示器是一个2D平面.OpenGL渲染的3D场景必须以2D图像方式投影到计算机屏幕上.GL_PROJECTION矩阵用于该投影变换.首先,它 ...

  8. scrapy爬虫程序xpath中文编码报错

    2017-03-23 问题描述: #选择出节点中“时间”二字 <h2>时间</h2> item["file_urls"]= response.xpath(& ...

  9. 转:大数据 2016 landscape

    如图:

  10. 从零单排之玩转Python安全编程(II)

    转自:http://www.secpulse.com/archives/35893.html 都说Python大法好,作为一名合格的安全从业人员,不会几门脚本语言都不好意思说自己是从事安全行业的. 而 ...