You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

理解Bash脚本变量与算术运算符:$((${2} - 1))中-1的作用

NUMBER_OF_IMAGES_TO_REMAIN=$((${2} - 1)) 中 -1 的作用

这里的 -1 是为了适配 jq 处理数组时的0起始索引规则,保证最终保留的镜像数量和用户输入的预期值完全匹配,具体逻辑如下:

  • 脚本的第二个入参是用户指定的需要保留的最新镜像数量,比如示例命令中的5,代表要保留最近推送的5个镜像,删除更早的历史镜像。
  • 脚本调用gcloud container images list-tags时加了--sort-by=~TIMESTAMP参数,返回的镜像列表是按照推送时间从新到旧倒序排列的,输出的JSON数组中:
    • 索引0对应第1个(最新的)镜像
    • 索引1对应第2个镜像
    • 以此类推,索引n-1对应第n个镜像
  • 脚本需要取出要保留的最后一个镜像的推送时间作为删除阈值:如果用户要保留5个镜像,那符合要求的最后一个镜像就是数组中索引为5-1=4的第5个镜像,取这个镜像的日期作为阈值,删除所有推送时间早于该阈值的镜像,最终剩下的就是索引0到4的5个最新镜像,完全符合用户预期。
  • 如果这里没有加-1,用户输入5时会取索引为5的第6个镜像的时间作为阈值,最终会保留6个镜像,和用户的预期不符。

内容的提问来源于stack exchange,提问作者user16402220

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 13:42:02