首页 > 解决方案 > 如何在bash中的字符串末尾增加一个数字?

问题描述

基本上我需要创建一个传递参数的函数,并且我需要更新数字,例如参数将是

version_2 并在函数之后将其更改为 version_3

只是增加一

在java中,我只会创建一个新字符串,然后将最后一个字符更新一个并追加,但不确定如何在bash中执行。

updateVersion() {
  version=$1
}

前缀可以是任何东西,例如可以是 dog12 或 dog_12,并且总是有一个要更新的数字。

更新后它将分别是 dog13 或 dog_13。

标签: bash

解决方案


updateVersion()
{
    [[ $1 =~ ([^0-9]*)([0-9]+) ]] || { echo 'invalid input'; exit; }     
    echo "${BASH_REMATCH[1]}$(( ${BASH_REMATCH[2]} + 1 ))"
}

# Usage
updateVersion version_11         # output: version_12
updateVersion version11          # output: version12
updateVersion something_else123  # output: something_else124
updateVersion "with spaces 99"   # output: with spaces 100

# Putting it in a variable
v2="$(updateVersion version2)"
echo "$v2"                       # output: version3

推荐阅读