bash - 如何在bash中的字符串末尾增加一个数字?
问题描述
基本上我需要创建一个传递参数的函数,并且我需要更新数字,例如参数将是
version_2 并在函数之后将其更改为 version_3
只是增加一
在java中,我只会创建一个新字符串,然后将最后一个字符更新一个并追加,但不确定如何在bash中执行。
updateVersion() {
version=$1
}
前缀可以是任何东西,例如可以是 dog12 或 dog_12,并且总是有一个要更新的数字。
更新后它将分别是 dog13 或 dog_13。
解决方案
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
推荐阅读
- azure - 带有 AzureADB2C 的 SaaS 应用程序:客户端 SSO 的用户流?
- sails.js - How to fix error caused by userconfig probably by sails?
- bash - How can I invoke both BASH and CSH shells in a same script
- php - 使用php从MySQL中选择并打印数据,不起作用
- c# - 具有 2 个时间数据的 LinkedList
- html - CSS文件未在浏览器中更新
- android - Android资产,我如何从子文件夹中读取文件?
- amazon-web-services - 我应该做很多较小的请求,还是使用 s3 做更少但更大的请求来传递数据
- python-3.x - 在 xlib 上使用 ctypes 时出现分段错误
- node.js - 如何将 node.js express 服务器转换为 AWS lambda?