如何在Bash中对版本号变量的指定数位执行加1操作?
处理三位点分版本号的数位递增方法
直接在Bash中通过字符串分割+算术运算就能解决,不需要写入文件用sed处理,步骤如下:
1. 分割原版本号
先把VAR_0按点.分割成三个独立的变量,方便单独操作每个数位:
# 假设VAR_0已获取到如2.7.4的版本号 IFS='.' read -r major minor patch <<< "$VAR_0"
2. 生成第三数位加1的变量VAR_1
对补丁号(第三数位)做算术加1后重新拼接:
VAR_1="$major.$minor.$((patch + 1))"
3. 生成第二数位加1的变量VAR_2
对次版本号(第二数位)做算术加1后重新拼接:
VAR_2="$major.$((minor + 1)).$patch"
完整示例代码
# 你的原有版本号获取命令 VAR_0=$(echo $(apt-cache policy <some apt package> | grep Candidate:) | grep -oP 'Candidate:\ \K.*') # 分割版本号 IFS='.' read -r major minor patch <<< "$VAR_0" # 生成目标变量 VAR_1="$major.$minor.$((patch + 1))" VAR_2="$major.$((minor + 1)).$patch" # 验证输出 echo "原版本: $VAR_0" echo "第三数位加1: $VAR_1" echo "第二数位加1: $VAR_2"
内容的提问来源于stack exchange,提问作者JFrol
相关产品推荐
相关产品推荐

