#!/bin/bash
old_time=$(cat change_time.txt)
cd RK/project
chmod 777 app/rkipc/Makefile
new_time=$(stat -c "%y" app/rkipc/Makefile)
if [ "echo $old_time" = "echo $new_time" ]
then
echo "#########not change#############"
else
./build.sh | tee /home/linhaot/sharing/rk_test.txt
fi
cd ..
cd ..
stat -c "%y" RK/project/app/rkipc/Makefile > change_time.txt
grep -n "(RK_APP_TYPE)=" rk_test.txt
原来目的是更改了RK/project/app/rkipc/Makefile的文件增加回显echo来查看一些变量值。但是由于一直需要在各个文件路径下返回,比较麻烦就写了这个程序。
这里的思路是用stat查询Makefile的日期然后,存到change_time.txt中,每次运行的时候都会调取现在的日期然后和之前的对比。
注意点 1.stat的用法2.将命令的输出赋值给变量stat -c "%y" RK/project/app/rkipc/Makefile > change_time.txt这是将Makefile文件的更改日期重定向到change_time.txt,不了解重定向的可以先看下面文章:
Linux学习日志3:shell_重定向_管道_如来fo的博客-CSDN博客一、重定向在看sh文件的时候,会发现明明echo或这报错了却没有显示出来,这是因为它们将输出存入别的地方了。Linux shell中,执行程序时,它使用三个标准I/O流,每个流都由一个数字文件描述符表示:0 - stdin,标准输入流。1 - stdout,标准输出流。2 - stderr,标准错误流。基本上你可以:1>.重定向stdout到一个文件ls-l#显示当前目录下所有文件的具体消息,并打印到屏幕上ls-l >/home/ls-l.txt#将lhttps://blog.csdn.net/weixin_46479559/article/details/124166808?spm=1001.2014.3001.5501stat具体用法:
linux中的stat介绍_Xlucas的博客-CSDN博客_linux stat核心 1、什么是stat命令 2、stat的格式 3、stat的基本操作 4、stat的案例1、什么是stat命令 stat指令:文件/文件系统的详细信息显示。 stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下: -f 不显示文件本身的信息,显示文件所在文件系统的信息 -Z 打印SElinux安全上下文信息 -L 显示符号链接 -chttps://blog.csdn.net/paicMis/article/details/60479639?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165242780916782184678149%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165242780916782184678149&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-60479639-null-null.142^v9^control,157^v4^control&utm_term=linux+stat+&spm=1018.2226.3001.4187
old_time=$(cat change_time.txt) new_time=$(stat -c "%y" app/rkipc/Makefile)3.用if比较两个时间是否相同
if [ "echo $old_time" = "echo $new_time" ]
注意:
①: “[” "]" "="左右都要有空格。
不会用if的可以参考这篇:Linux学习日志2:shell脚本_如来fo的博客-CSDN博客
②:"echo $old_time"将变量用字符串的形式表示出来



