我是bash脚本新手。我需要将构建的版本号增加1.
例如:-如果我的版本是1.0.0+1
,碰撞它将生成1.0.1+2
,即基本上在+
之前和之后增加1个数字。
如何在bash脚本中完成?
基本接近Python风格的bash方法是使用正则表达式将版本号和版本字符串的其余部分分开:
version=1.0.0+1
if [[ $version =~ ^([^+?]*[.])([0-9]*)[+]([0-9]+) ]]
then
# ... see below
else
echo Unexpected version string: "$version"
fi
当您有匹配时,您可以引用regexp中的捕获组。在Python中,您将使用类似result.group(1)
的东西来访问组。在bash中,为此您有一个单独的预定义数组BASH_REMATCH
,它总是引用最近的regexp匹配。在本例中,我们将使用
version_string_head=${BASH_REMATCH[1]} # 1.0.
version_count_hi=${BASH_REMATCH[2]} # 0
version_count_lo=${BASH_REMATCH[3]} # 1
其余的都是不重要的:
new_version_string=${version_string_head}$((version_count_hi + 1))+$((version_count_lo + 1))