一个shell,定义一个函数,版本号做为参数,来更新这个版本号,如1.0,更新结果为1.1
increment_version ()
{
declare -a part=( ${1//\./ } )
declare new
declare -i carry=1
for (( CNTR=${#part[@]}-1; CNTR>=0; CNTR-=1 )); do
len=${#part[CNTR]}
new=$((part[CNTR]+carry))
[ ${#new} -gt $len ] && carry=1 || carry=0
[ $CNTR -gt 0 ] && part[CNTR]=${new: -len} || part[CNTR]=${new}
done
new="${part[*]}"
echo -e "${new// /.}"
}
version='1.1.9'
increment_version $version
使用方法
# EXAMPLE -------------> # RESULT
increment_version.sh 1.9 # 2.0
increment_version.sh 1.0.0 # 1.0.1
increment_version.sh 1.1 # 1.2
increment_version.sh 1.1.00 # 1.1.01