[Shell]通過shell修改build.gradle配置文件


我的需求:

自動化打包前,修改版本號

 

思路如下:

1.獲取要修改字符串在build.gradle配置文件的所在行

2.整行刪除舊字符串

3.新將新字符串寫入配置文件

 

技術點:

  • sed讀寫配置文件
  • 獲取指定字符串所在行
  • 將字符串寫入配置文件指定位置(指定行)
  • 拼接字符串,字符串包含特殊符號,雙隱號,單隱號,轉義符號的使用

 

build.gradle配置文件內容如下:

 defaultConfig { applicationId "com.wawj.app.t"
// applicationId "com.wawj.app.tt"
        minSdkVersion 16 targetSdkVersion 26 versionCode 20191226 versionName "8.8.8" #要修改的字符串  testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunn$
        multiDexEnabled true
// resConfigs "en", "de", "fr", "it"git // resConfigs "nodpi", "hdpi", "xhdpi", "xxhdpi", "xxxhdpi"
 ndk { //極光推送--選擇要添加的對應cpu類型的.so庫
            abiFilters 'xx', 'xx-xxxa', 'xxx' } 

 

腳本如下:

cd AppFrameWork/app/ #build.gradle配置文件所在目錄 VERSION=" versionName \"$Version\"" #拼接修改后的字符串 #獲取行數,並保存到變量 line=$(sed -n '/versionName/=' build.gradle) #獲取要修改的字符串所在行,並將它保存到變量line echo "版本號所在行$line" #插入內容的位置 newline=$(expr $line - 1)#計算要插入行的的行號,因后面使用 追加(注意不是插入)的方式將要修改的字符串 追加所在行,所以里這里要將line-1,寫入字符串的位置才是准確的 #刪除指定行 sed -i  "$line d" build.gradle #在指定行追加要字符串,並保存修改( -i表示保存修改) sed -i "$newline a\\$VERSION" build.gradle echo "修改的版本號是$VERSION"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM