shell - 如何使用 shell 脚本获取下一个可用号码?
问题描述
我正在编写一个 shell 脚本,它将从 Git 中提取代码,将其转换为 Docker 映像,然后将其部署在 UAT 中。
我被困在脚本的最后一部分。问题是在服务器中有几个具有相同名称但标签不同的图像,例如:
“abc1.tar.bz2”、“abc2.tar.bz2”、“abc3.tar.bz2”
我希望下一个图像名称自动递增:“abc4.tar.bz2”,是否可以在 shell 脚本中使用?
我想从这个公式中创建一个变量,并在以后重用该变量。
解决方案
试试这个代码
next_doc_img(){
dock_img=$1
IFS='.' read -ra my_array <<< "$dock_img"
hotfix_current_num="${my_array[3]//[!0-9]/}"
hotfix_name="${my_array[3]//[0-9]/}"
hotfix_next_num=$((hotfix_current_num+1))
echo "${my_array[0]}.${my_array[1]}.${my_array[2]}.${hotfix_name}${hotfix_next_num}.${my_array[4]}.${my_array[5]}"
}
current_dock_image_name="product_component.4.0.hotfix2.tar.bz2"
echo "current dock image name: ${current_dock_image_name}"
next_dock_image_name=$(next_doc_img "${current_dock_image_name}")
echo "Next Dock Image Name: ${next_dock_image_name}"
输出当前停靠镜像名称:product_component.4.0.hotfix2.tar.bz2
下一个停靠镜像名称:product_component.4.0.hotfix3.tar.bz2
推荐阅读
- .net - 如何创建 Microsoft.Exchange.Data.Unlimited
Powershell 的结构? - debugging - 如何在运行时检查 select 是否会阻塞
- python - Python 输出和原因
- javascript - javascript fetch() 从 mysql 表中搜索返回状态代码 500
- pyspark - PySpark:如何生成由日期时间范围组成的数据框?
- bootstrap-4 - Gulp 无法正常运行
- r - 从我的数据中创建一个包含 3 列预测概率的混淆矩阵
- python - 在使用带有 elasticsearch-py 的查询匹配时自定义分析器有什么建议吗?
- django - 在 Django 中序列化嵌套模型对象
- asp.net-core - Visual Studio 2019 中的原始标记帮助程序不再是紫色