自动同步repo管理仓库到本地gitlab服务器脚本开发

需求:

需要把A公司代码自动同步到B公司并且把下载代码的xml文件推送到仓库

难点:

xml文件自动生成需要用正则表达式

 

本人实际应用时需要把下面xml文件更改

echo "deal with xml file..."
sed -ie '/<project/s/revision=".*"/remote="atc" revison="'"$new_branch"'"/' $new_branch.xml
sed -i '/<default/d' $new_branch.xml
sed -ie 's/<remote.*/<remote fetch="ssh:\/\/git@3rdscm\/vdr\/atc" name="atc" revision="'"$new_branch"'" \/>/' $new_branch.xml

以下本次学习正则表达式关键点

1,sed替换字符串变量

参考链接:https://www.cnblogs.com/jing1617/p/11523580.html

      1,sed命令使用双引号的情况下,可以使用$var(变量)直接引用:

  echo | sed "s/^/$RANDOM.rmvb_/g"

  13562.rmvb_

  2、sed命令使用单引号的情况下,可以使用'"$var"'引用(单引号,然后双引号,变量):

  echo | sed 's/^/'"$RANDOM"'.rmvb_/g'

  2442.rmvb_

  sed中执行外部命令。

  1、sed命令使用单引号的情况下使用'`shell command`'或者'$(shell command)'引用命令执行的结果:

  echo | sed 's/^/'`echo $RANDOM`'.rmvb_/g'

  7700.rmvb_# 结果

  # 上面的命令使用了旧式的命令替换,也可以采用新式的命令替换方法,如下:

  echo | sed 's/^/'$(echo $RANDOM)'.rmvb_/g'

  13856.rmvb_# 结果

  # 下面例子取用当前日期作为结果的一部分,如下:

  echo | sed 's/^/'$(date +"%Y%m%d")'.rmvb_/g'

  20130401.rmvb_ # 结果

  2、sed命令中使用双引号的情况下,直接`shell command`或者$(shell command)引用命令执行。

  echo | sed "s/^/$(date +"%Y%m%d").rmvb_/g"

  20130401.rmvb_# 结果

  # 使用环境变量$RANDOM以及旧式命令替换的例子:

  echo | sed "s/^/`echo $RANDOM`.rmvb_/g"

  29484.rmvb_# 结果

  总结一下

  在sed语句里面,变量替换或者执行shell命令,双引号比单引号少绕一些弯子;所以,sed和变量的关键词搜索的结果,众多都写上替换单引号为双引号

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页