Shell中根據svn是否有待更新的版本去決定是執行maven打包

1- svn 更新判斷代碼app

本着學習的目的,這裏使用了兩種獲取version的方法。svn

    localVersion=$(svn info -R | grep "Revision\:" | sort -k 2 -nr | head -n 1 | awk -F ' ' 'NR==1 {print $2}')
    serverUrl=$(svn info |grep "^URL:" | awk '{print $2}')
    serverVersion=$(svn info ${serverUrl} |grep "Last Changed Rev:" |awk '{print $4}')
    if test ${serverVersion} -gt ${localVersion}
    then
        svn update
        mvn clean package -DskipTests
        cd ${moduleName}/target/
        cp -f ${jarName} ${appHome}/jar/
    fi

2- 解釋學習

  • sort
  svn info -R 遞歸查出全部文件的info信息
  sort -k 2 是以第二列排序
  sort -t : 是指定以「:」爲列分隔符
  sort -nr: n是指以數字排序,默認是以字符排序的,那樣的話,10會在2的前面,由於1大於2,-r (reverse)是以倒序排序。
 
  •  awk

  -F 指定分隔符spa

  NR==1 指定行號爲1code

  print $2 打印NR行2列的內容server

相關文章
相關標籤/搜索