我想在Ubuntu服务器上创建一个Bask脚本,该脚本应该检查远程SVN存储库中哪些文件发生更改。如果是的话,它应该执行一些任务。 在我的情况下运行doxygen并重新生成文档。SVN远程文件发生变化时运行bash脚本
我无法解释svn状态响应。 我一直在寻找整个星期,并尝试找到几个建议,但它仍然无法正常工作。确切地说,无论它们是否被更改文件,任务总是运行。
这里是我的脚本至今:
#!/bin/bash
# Get the status:
svnstatus=$(svn status -u -q)
#Check for modified or new files:
#This part is not working correctly
added=$(printf "%s" "$svnstatus" | sed -n 's/[Added] *\(.*\)/\1/p')
modified=$(printf "%s" "$svnstatus" | sed -n 's/[Updated] *\(.*\)/\1/p')
if [ "x$added" != "x" -o "x$modified" != "x" ]
then
svn update
echo regenerated documentation using doxygen
fi
的主要问题是与SED的一部分。我是Ubuntu新手,这部分对我来说很困难。我从Internet上找到的脚本中复制了这些内容。
$ svnstatus是
Status against revision: 75016
没事的时候新
* 75016 Resources/graphs/dot_tags.txt
Status against revision: 75017
当一个文件被改变。
任何意见是非常赞赏
是否'SVN update'当它的东西,否则失败返回成功?你能做到吗? doxygen进程是否通过make?如果它正在运行,那么这可能不是什么大事,因为当没有任何变化时它将避免做任何工作。 – 2014-09-19 14:54:32