- 论坛徽章:
- 0
|
本帖最后由 xwtnt236 于 2013-07-09 14:42 编辑
如下代码所示:- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.test.package"
- android:versionCode="2013001000000"
- android:versionName="1.0.0_Test" >
- <uses-sdk android:minSdkVersion="8" />
复制代码 versionName值格式为a.b.c_Test,其中a、b、c均为数字,想对a或b或c进行自动加1控制;修改完versionName值后同时也对versionCode进行修改,versionCode值格式为年份abc(与versionName的值abc一一对应,只不过不足三位时自动在前面补0)。
初步分析:1.如何获取a,b,c的初始值,取到值自动加1就好办了;2.如何对a,b,c不足三位时自动在前面补0.
多谢达人指教!
以下脚本即可控制versionName中a,b,c自动加1,同时也能控制versionCode中对应a,b,c值自动加1不足三位补0.- #!/bin/bash
- tmp=`sed -n 's/.*versionName="\(.*\)_Test" >/\1/p' test.txt`
- cnt=`echo $tmp | tr . "\n" | wc -l`
- a=0;b=0;c=0
- if [ $cnt == 3 ]; then
- a=`echo $tmp|sed -n 's/\(.*\)\.\(.*\)\.\(.*\)/\1/p'`
- b=`echo $tmp|sed -n 's/\(.*\)\.\(.*\)\.\(.*\)/\2/p'`
- c=`echo $tmp|sed -n 's/\(.*\)\.\(.*\)\.\(.*\)/\3/p'`
- else
- b=`echo $tmp|sed -n 's/\(.*\)\.\(.*\)/\1/p'`
- c=`echo $tmp|sed -n 's/\(.*\)\.\(.*\)/\2/p'`
- fi
- echo verionName=$tmp
- echo a=$a,b=$b,c=$c
- sed -i 's/\(android:versionName="\)[^"]*"/\1'$((a+0))'.'$((b+0))'.'$((c+1))'_Test"/' test.txt
- x=`printf "%03d\n" $((a+0))`
- y=`printf "%03d\n" $((b+0))`
- z=`printf "%03d\n" $((c+1))`
- sed -i 's/\(android:versionCode="\)[^"]*"/\1'`date +%Y`''$x''$y''$z'"/' test.txt
复制代码 |
|