我正在尝试编写一个bash脚本来增加版本号,该版本号在

{major}.{minor}.{revision}

例如。
1.2.13

有没有一种好方法,可以使用sed或awk之类的方法轻松提取这3个数字,以便我可以递增{revision}数字并输出完整的版本号字符串。

最佳答案

$ v=1.2.13
$ echo "${v%.*}.$((${v##*.}+1))"
1.2.14
$ v=11.1.2.3.0
$ echo "${v%.*}.$((${v##*.}+1))"
11.1.2.3.1

下面是它的工作原理:

字符串分为两部分。
  • 第一个包含除最后一个点和下一个字符之外的所有内容:${v%.*}
  • 第二个包含除最后一个点以外的所有字符:${v##*.}

  • 第一部分按原样打印,后跟一个普通点,最后一部分使用Shell算术扩展递增:$((x+1))

    关于bash - 从Shell脚本中的文件中提取版本号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6245293/

    10-13 09:31