#rm -f cpptime.time
#
#获取路径
currentPath=`pwd`'/test.cpp'
#echo $currentPath
#获取文件最后修改的时间戳
#time=`stat -c %Y $currentPath`
#格式化
#formart_date=`date '+%Y-%m-%d %H:%M:%S' -d @$time`
#echo $formart_date
#把文件路径和时间写入文件
#echo "$currentPath"'|'"$time" > cpptime.time
#验证文件
vertifyFile="cpptime.time"
#不用编译的文件
equaltimefile=''
#需要编译的文件
notequaltimefile=''
#参数是要判断的一个文件路径
function JudgeChangeFile()
{
#判断验证文件是否存在且不为空 , -s表示不为空
if [ -e $vertifyFile ] && [ -s $vertifyFile ] #是否存在cpptine.time文件
then
#echo "vertifyFile is exist!"
`` # 放置一个空命令
else
#echo "vertifyFile is not exist!"
notequaltimefile=$notequaltimefile" "$@
return
fi
while read line
do
#echo $line
#提取第一部分和第二部分, f1是第一部分,f2是第2部分
#echo $line|cut -d "|" -f1 #文件路径
#echo $line|cut -d "|" -f2 #文件的时间戳
#$@ 函数的所有参数 $currentPath
if [ $@ = `echo $line|cut -d "|" -f1` ] #cpp文件名字是否验证文件内的名字
then
#在验证文件里面存在文件名字
#echo "vertify file exist cpp filename "
#要判断的当前文件时间
time=`stat -c %Y $@`
if [ $time = `echo $line|cut -d "|" -f2` ] #文件是否修改了
then
#没有修改
#echo "equal time "
equaltimefile=$equaltimefile" "$@
else
#文件修改了
echo "not equal time"
notequaltimefile=$notequaltimefile" "$@
fi
return
fi
done < $vertifyFile
#在验证文件里面不存在文件名 ,当作修改文件处理
echo "vertify file not exit cpp filename "$@" "`echo $line|cut -d "|" -f1`
notequaltimefile=$notequaltimefile" "$@
}
echo '-----------------------------'
#函数调用
JudgeChangeFile $currentPath
JudgeChangeFile `pwd`'/test2.cpp'
echo "没有改动的文件:"$equaltimefile
echo
echo "修改的文件:"$notequaltimefile
#删除修改时间验证文件,重新创建
if [ -e $vertifyFile ] #是否存在cpptine.time文件
then
#echo "vertifyFile is exist! "
rm -f $vertifyFile
else
#echo "vertifyFile is not exst,Create!"
touch cpptime.time
fi
#echo "------WriteTimeFile-----------"
#Write to cpptime.time
function WriteTimeFile()
{
for filepathname in $@
do
#echo $filepathname
time=`stat -c %Y $filepathname`
#把文件名称和文件的修改时间写到验证文件
echo "$filepathname"'|'"$time" >> cpptime.time
done
}
#把cpp文件和文件修改时间都写到验证文件
WriteTimeFile $equaltimefile
WriteTimeFile $notequaltimefile