首页 > 解决方案 > 如何使用 shell 脚本获取下一个可用号码?

问题描述

我正在编写一个 shell 脚本,它将从 Git 中提取代码,将其转换为 Docker 映像,然后将其部署在 UAT 中。

我被困在脚本的最后一部分。问题是在服务器中有几个具有相同名称但标签不同的图像,例如:

“abc1.tar.bz2”、“abc2.tar.bz2”、“abc3.tar.bz2”

我希望下一个图像名称自动递增:“abc4.tar.bz2”,是否可以在 shell 脚本中使用?

我想从这个公式中创建一个变量,并在以后重用该变量。

标签: shellautomation

解决方案


试试这个代码

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


推荐阅读