[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