Bash脚本文件修改依赖性检查

时间:2011-06-16 23:33:35

标签: bash shell scripting build

我正在尝试在bash构建脚本中进行简单检查,以检查构建的文件XML是否比目录中的组件xml文件更新。

所以基本上我有一个包含10个XML文件的src /目录和一个从这些文件构建的final.xml。

检查final.xml的修改时间以确保它比src /中的文件更旧的简单方法。

与ANT类似的东西

    <uptodate property="xml.build.notRequired" targetfile="${final.xml}">
        <srcfiles dir="${src.dir}" includes="**/*.xml" />
    </uptodate>

或Make文件的基本功能(但我宁愿在脚本中执行此操作,而不是将Make / ANT作为依赖项添加)。

2 个答案:

答案 0 :(得分:5)

find src -type f | while read filename; do
    if [ "$filename" -nt "final.xml" ]; then
        echo "Oh noes, final.xml is out of date..."
    fi
done

答案 1 :(得分:0)

find src -newer src/final.xml -print

将打印所有“newer”作为final.xml的文件

n=$(find src -newer src/final.xml | grep -c '.') && echo Here is $n newer files
只有当这里有任何新文件时,

才会echo,否则回复将不会被执行