shell 实现 svn cleanup
V0.1
#! /bin/bash files=`svn status | grep -v ?` #也可以写成 files=$(svn status | grep -v ?) 的形式 for file in ${files} do if [ ! ${#file} -eq 1 ] then rm $file fi done svn update
参见《Bash Reference Manual》 3.5.4 Command Substitution,想要引用 cmd 的输出有两种方式,$(command) 或者 `comand`。
V1.1
#! /bin/bash set -e files=`svn status | grep -v ?` for file in ${files} do del=1 if [ ! ${#file} -eq 1 ] then for skip in $@ do if [ ${file} == ${skip} ] then del=0 break fi done if [ ${del} -eq 1 ] then echo "rm ${file}" else echo "not rm ${file}" fi fi done
TODO
- 更新到相应版本号
- 删除不在版本库中的文件