计算升级版本号
- 根据
当前的版本号
计算升级版本后的号
,支持自定义版本号
效果如下:
shell
current_version="5.0.0"
echo "当前的版本为【${current_version}】"
# 计算要升级的版本号
# 分割当前版本号为主版本、次版本和修订版本
IFS='.' read -ra version_parts <<< "$current_version"
major_version="${version_parts[0]}"
minor_version="${version_parts[1]}"
patch_version="${version_parts[2]}"
# 计算下一个可能版本
next_major_version="$((major_version+1)).${minor_version}.${patch_version}"
next_minor_version="${major_version}.$((minor_version+1)).${patch_version}"
next_patch_version="${major_version}.${minor_version}.$((patch_version+1))"
# echo "${next_major_version}-${next_minor_version}-${next_patch_version}"
# 让用户选择一个版本号
# 默认选择next_patch_version
selected_version=${next_patch_version}
# 询问用户选择的函数
function ask_version() {
echo "请选择一个版本:"
select version in "major(${next_major_version})" "minor(${next_minor_version})" "patch(${next_patch_version})" "自定义版本" "退出"; do
case $version in
"major(${next_major_version})")
selected_version="${next_major_version}"
break
;;
"minor(${next_minor_version})")
selected_version="${next_minor_version}"
break
;;
"patch(${next_patch_version})")
selected_version="${next_patch_version}"
break
;;
"自定义版本")
read -p "请输入自定义版本: " custom_version
selected_version="${custom_version}"
break
;;
"退出")
exit
;;
*)
echo "无效的选项,请重新选择."
;;
esac
done
}
# 调用函数询问用户选择
ask_version
echo "升级后的版本号为【${selected_version}】"
shell
语句备注
shell
IFS='.' read -ra version_parts <<< "$current_version"
首先,将
IFS
设置为.
,这意味着Shell
将使用.
作为字段分隔符
,用于将字符串分割成多个部分
;然后,使用
read
命令结合<<<
操作符,将字符串"$current_version"
作为输入传递给read命令
;read
命令读取输入,并将其分割为多个字段
,并将每个字段存储在一个数组中
-a
选项告诉read
命令将字段存储在数组
中-r
选项告诉它不要对反斜杠进行转义