- 論壇徽章:
- 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" />
復(fù)制代碼 versionName值格式為a.b.c_Test,其中a、b、c均為數(shù)字,想對(duì)a或b或c進(jìn)行自動(dòng)加1控制;修改完versionName值后同時(shí)也對(duì)versionCode進(jìn)行修改,versionCode值格式為年份abc(與versionName的值abc一一對(duì)應(yīng),只不過(guò)不足三位時(shí)自動(dòng)在前面補(bǔ)0)。
初步分析:1.如何獲取a,b,c的初始值,取到值自動(dòng)加1就好辦了;2.如何對(duì)a,b,c不足三位時(shí)自動(dòng)在前面補(bǔ)0.
多謝達(dá)人指教!
以下腳本即可控制versionName中a,b,c自動(dòng)加1,同時(shí)也能控制versionCode中對(duì)應(yīng)a,b,c值自動(dòng)加1不足三位補(bǔ)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
復(fù)制代碼 |
|