【CSH 入门基础 5 -- csh 文件监控脚本实现】

文章目录

    • 背景
    • CSHLL 代码实现
      • cshell 中 unset 的介绍
      • bash 中监控文件的方法

背景

由于开发代码是在外网编译,而镜像的烧写是在内网中的EDA工具中进行的,所以就需要先将代码在外网编译好后,再通过FTP工具将镜像传输到内网中,然后在内网EDA软件中加载镜像,这样每次在不同的环境中重复操作很 费劲,就萌生了一个想法:是不是可以在内网中监控要烧写的文件,如果发现该文件的时间戳发生变化,就将烧写文件从内网中的FTP目录拷贝到烧写目录。

CSHLL 代码实现

#!/bin/cshset cur_time=`ls -rtl /mnt/ftp/download.img | awk '{print $8}' | awk -F ":" '{print $1$2}'`
sleep 1while (1)set pre_time=$cur_timeunset cur_timeset cur_time=`ls -rtl /mnt/ftp/download.img | awk '{print $8}' | awk -F ":" '{print $1$2}'`if ($pre_time == $cur_time) thenecho "sleep 3s wait for new version"sleep 3elseecho "copy new files to eda dir"endif
end

测试结果:
在这里插入图片描述

关于 命令 awk 的使用请见:嵌入式开发 Linux 常用命令系列 7 – awk 常用方法

cshell 中 unset 的介绍

C Shell中的unset命令用于删除环境变量或者shell变量。该命令的格式如下:

unset variable

在这里,variable是你要删除的变量的名字。

例如,假设你已经设置了一个名为MY_VAR的环境变量,你可以使用以下命令删除它:

unset MY_VAR

需要注意的是,unset命令只能删除当前shell环境中的变量,它不能删除其他shell环境或者子进程中的变量。此外,如果你试图删除一个不存在的变量,unset命令不会报错,它会默默地忽略这个操作。

bash 中监控文件的方法

watch命令可以定期执行一条命令,并显示其输出,因此可以用来监控文件的状态。例如,下面的命令会每两秒钟显示一次文件 file.txt 的前10行:

watch -n 2 "head file.txt"

inotify 是一个Linux特有的文件系统监视机制,它可以用来监视文件或目录的变化。在Shell中,可以使用inotifywaitinotifywatch等命令来使用这个机制。例如,下面的命令会监视file.txt的修改,并在文件被修改时输出一条消息:

 inotifywait -m -e modify file.txt

请注意,inotify的相关命令可能并不在所有的Linux发行版中都预装,如果需要使用,你可能需要手动安装。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/63785.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android FrameWork 层 Handler源码解析

Handler生产者-消费者模型 在android开发中,经常会在子线程中进行一些耗时操作,当操作完毕后会通过handler发送一些数据给主线程,通知主线程做相应的操作。 其中:子线程、handler、主线程,其实构成了线程模型中经典的…

neo4j查询语言Cypher详解(二)--Pattern和类型

Patterns 图形模式匹配是Cypher的核心。它是一种用于通过应用声明性模式从图中导航、描述和提取数据的机制。在MATCH子句中,可以使用图模式定义要搜索的数据和要返回的数据。图模式匹配也可以在不使用MATCH子句的情况下在EXISTS、COUNT和COLLECT子查询中使用。 图…

Spring Boot+Mybatis实现增删改查接口开发+测试(超详细建议收藏)

前言 Java也是测试必知必会的内容,特别是现在类似spring boot 等Java框架更是成为主流。之前实现的图书增删改查是用Python实现的,没看过的请移步:Flaskmysql 实现增删改查接口开发测试(图文教程附源码),本…

redis学习笔记(八)

文章目录 redis的配置redis的核心配置选项Redis的使用 redis的配置 cat /etc/redis/redis.confredis 安装成功以后,window下的配置文件保存在软件 安装目录下,如果是mac或者linux,则默认安装/etc/redis/redis.conf redis的核心配置选项 绑定ip:访问白名单&#x…

AP51656 电流采样降压恒流驱动IC RGB PWM深度调光 LED电源驱动

产品描述 AP51656是一款连续电感电流导通模式的降压恒流源,用于驱动一颗或多颗串联LED 输入电压范围从 5 V 到 60V,输出电流 可达 1.5A 。根据不同的输入电压和 外部器件, 可以驱动高达数十瓦的 LED。 内置功率开关,采用电流采样…

【Spring Boot】夺名连环问(持续更新ing)

Spring的了解与特性 简单介绍:快速开发Spring项目的脚手架。简化Spring应用的初始搭建以及开发过程。 特性 提供了很多内置的Starter结合自动配置,对主流框架的无配置集成、开箱即用。即不需要自己去引入很多依赖。 并且管理了常用的第三方依赖的版本&…

冒泡排序(超详细!)(C语言)

大家好!欢迎来到Mr.kanglong的CSDN博文,今天来讨论一下冒泡排序,在百度百科中,关于为什么叫冒泡排序是这样解释的:因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列)&#xff0c…

软件测试工程师面试如何描述自动化测试是怎么实现的?

软件测试工程师面试的时候,但凡简历中有透露一点点自己会自动化测试的技能点的描述,都会被面试官问,那你结合你的测试项目说说自动化测试是怎么实现的?一到这里,很多网友,包括我的学生,也都一脸…

python小白之matplotlib使用实战项目:随机漫步

文章目录 随机漫步1.1 创建RandomWalk类1.2 选择方向1.3 绘制随机漫步图1.4 模拟多次随机漫步1.5 设置随机漫步图样式1.5.1 给点着色1.5.2 重新绘制起点和终点1.5.3 隐藏坐标轴1.5.4 增加点数1.5.5 调整图片尺寸以适应屏幕 附录(项目代码)random_walk.py…

【云原生|Docker系列第3篇】Docker镜像的入门实践

欢迎来到Docker入门系列的第三篇博客!在前两篇博客中,我们已经了解了什么是Docker以及如何安装和配置它。本篇博客将重点介绍Docker镜像的概念,以及它们之间的关系。我们还将学习如何拉取、创建、管理和分享Docker镜像,这是使用Do…

Leetcode-每日一题【剑指 Offer 28. 对称的二叉树】

题目 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称…

[保研/考研机试] 猫狗收容所 C++实现

题目描述: 输入: 第一个是n,它代表操作序列的次数。接下来是n行,每行有两个值m和t,分别代表题目中操作的两个元素。 输出: 按顺序输出收养动物的序列,编号之间以空格间隔。 源代码&#xff…