1、脚本内容:将命令的结果实时写入文件,再从文件中搜索指定字符串,并返回含有该字符串的行数。

2、正确的脚本:

#!/bin/bash
#find the lost glabelingtopo and restart
#write by Jason.F
#2016.07.29#assert 12 processes
jps > /home/topo.log
declare -i jpsnum=0
#var=`find /home/ -type f -name "topo.log" | xargs grep "name"`
jpsnum=$(grep -c name /home/topo.log)
if [ $jpsnum -eq 12 ]; then
rm -rf /home/topo.log
exit 0
fi

3、错误的脚本:

#!/bin/bash
#find the lost glabelingtopo and restart
#write by Jason.F
#2016.07.29#assert 12 processes
jps > /home/topo.log &
declare -i jpsnum=0
#var=`find /home/ -type f -name "topo.log" | xargs grep "name"`
jpsnum=$(grep -c name /home/topo.log)
if [ $jpsnum -eq 12 ]; then
rm -rf /home/topo.log
exit 0
fi

4、经验:

两个脚本的区别在于jps > /home/topo.log ,错误的脚本加了&,导致错误的脚本执行中,jpsnum一直为零。猜测是因为加了&,变成后台异步将命令结果写入到文件,而当前任务从文件中搜索的实际是一份还未关闭写入的空文件,所以返回是零。去掉&,就是完成文件写入并保存文件后,才开始在文件中搜索,而错误脚本确实未保存文件就搜索,自然搜索不到内容。

shell一段脚本的一点经验(实时文件流读写)相关推荐

  1. 你不知道的shell用法和脚本,简单强大

    本文摘自:码农增刊 Linus与Linux 在阅读以下部分前, 强烈建议读者打开一个 shell 实验,这些都不是 shell 教科书里的大路货哦:) 1. sudo !! 以root的身份执行上一条 ...

  2. 生产力工具:shell 与 Bash 脚本

    生产力工具:shell 与 Bash 脚本 作者:吴甜甜 个人博客网站: wutiantian.github.io 微信公众号: 吴甜甜的博客 注意:本文只是我个人总结的学习笔记,不适合0基础人士观看 ...

  3. [MIT公开课(计算机教育中缺失的一课)]2.Shell工具与脚本

    (该系列文章大部分内容来源于MIT课程笔记,加入了个人的理解.原笔记中没有的细节和其他的需要理解的内容,公开课地址:https://www.bilibili.com/video/BV14E411J7n ...

  4. Delphi使用server组件控制excel的一点经验

    近来的项目报表全部做成excel文件,方便很多.可惜的是delphi中的server组件没有帮助,只能靠网上的资料和自己的摸索.经过一段时间,积累了一点经验,写出来希望对大家有所帮助.近来在网上搜索到 ...

  5. 使用Unity开发项目的一点经验

    使用Unity开发项目的一点经验 我们主要使用3dsmax2010进行制作,输出FBX的类型导入Unity3D中. 默认情况下,3dsmax8可以和U3D软件直接融合,自动转换为FBX物体. 注意事项 ...

  6. 同济计算机博士要求低,上海同济考博的一点经验分享

    本人参加了三年的同济大学考试,有失败的懊恼,也有成功的喜悦,一点经验分享出来,希望能对同学有所帮助. 1. 英语 1.1   从基础词汇复习来说,论坛里的前辈常说托福.GRE足以应对,我个人感觉同济词 ...

  7. 赚钱副业项目:steam搬砖的一点经验

    进入正文 首先向大家说明一下,玩这个steam游戏道具搬砖项目,不必非得会玩游戏. 到目前操作这个项目2年时间了,那么接下来谈谈自己的一点经验. 关于选品.出售上架的13条核心经验: 建议新手入场的时 ...

  8. 学习网页设计的一点经验

    随着公司影响力的壮大和产品的不断提升,相关的形象设计要逐步跟得上,需要逐渐提升,所以就招一个应届生美工,算是一块成长.应届生有拼劲.肯学,但也好高骛远,起点都差不多,如何培养美工就变得至关重要了.总结 ...

  9. 2021年大数据Kafka(三):❤️Kafka的集群搭建以及shell启动命令脚本编写❤️

    全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka的集群搭建以及shell启动命令脚本编写 一.搭建 ...

最新文章

  1. mysql 临时列_如何在MySQL中列出临时表列?
  2. 算法-打印一个字符串的全部子序列,包括空字符串
  3. 【树型DP】加分二叉树
  4. 【NLP】文本预处理:删除单词停用词
  5. 过滤器用到了java哪个模式_设计模式之过滤器模式——Java语言描述
  6. 借助Apache Hadoop大规模扩展Apache Solr实时实时索引
  7. wincc历史数据库_WinCC系统的基本功能介绍——自动化工程师必备
  8. [css] 写出固定子容器在固定的父容器下水平垂直居中的布局
  9. jquery点击label触发2次的问题
  10. java用scanner类_java中关于scanner类的详细介绍
  11. 分布式文件系统FastDFS动态扩容
  12. cognos 10 oracle,Cognos10.2.1安装配置手册.docx
  13. Git出现 fatal: Authentication failed for 'http://xxx.xxx.xx:xxx.git/'解决方法
  14. LeetCode 915. 分割数组**(double,需要trp)
  15. 又一神作。Alibaba“M8级”架构师总结微服务与事件驱动架构启蒙手册
  16. 【回溯法】机器零件加工-最优加工顺序
  17. 寺库拟私有化:报价较发行价缩水75%,趣店为第一大股东
  18. Allergo导出Gerber文件
  19. squid代理服务器应用及它的几种代理模式
  20. 浅谈使用Python脚本爆破CRC32

热门文章

  1. 调用 标签打印软件_标签打印软件如何制作陶瓷标签模板
  2. Asp.Net Core 之 appsettings.json
  3. 2B.处女座与cf(C++)
  4. Vue 组件中 移动 this.$el 的注意事项
  5. 定时任务 Crontab命令 详解
  6. MySQL查询表内重复记录
  7. http://www.openwebx.org/docs/turbine.html
  8. iOS9临时性解决HTTP以及scheme跳转问题
  9. 实验 3 简单的分支与循环结构
  10. Symbian编程总结-图形图像篇-打开非Bitmap类型的图像