网站需求文档,中国设计网官网图标,互联网舆情监测中心待遇,网站建设佛山文章目录 背景CSHLL 代码实现cshell 中 unset 的介绍bash 中监控文件的方法 背景
由于开发代码是在外网编译#xff0c;而镜像的烧写是在内网中的EDA工具中进行的#xff0c;所以就需要先将代码在外网编译好后#xff0c;再通过FTP工具将镜像传输到内网中#xff0c;然后在… 文章目录 背景CSHLL 代码实现cshell 中 unset 的介绍bash 中监控文件的方法 背景
由于开发代码是在外网编译而镜像的烧写是在内网中的EDA工具中进行的所以就需要先将代码在外网编译好后再通过FTP工具将镜像传输到内网中然后在内网EDA软件中加载镜像这样每次在不同的环境中重复操作很 费劲就萌生了一个想法是不是可以在内网中监控要烧写的文件如果发现该文件的时间戳发生变化就将烧写文件从内网中的FTP目录拷贝到烧写目录。
CSHLL 代码实现
#!/bin/cshset cur_timels -rtl /mnt/ftp/download.img | awk {print $8} | awk -F : {print $1$2}
sleep 1while (1)set pre_time$cur_timeunset cur_timeset cur_timels -rtl /mnt/ftp/download.img | awk {print $8} | awk -F : {print $1$2}if ($pre_time $cur_time) thenecho sleep 3s wait for new versionsleep 3elseecho copy new files to eda direndif
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.txtinotify 是一个Linux特有的文件系统监视机制它可以用来监视文件或目录的变化。在Shell中可以使用inotifywait和inotifywatch等命令来使用这个机制。例如下面的命令会监视file.txt的修改并在文件被修改时输出一条消息 inotifywait -m -e modify file.txt请注意inotify的相关命令可能并不在所有的Linux发行版中都预装如果需要使用你可能需要手动安装。