linux~更新版本号的shell

一个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
posted @ 2022-03-28 17:41  张占岭  阅读(31)  评论(0编辑  收藏  举报