请求协助完善Docker容器ID验证的Bash脚本
修复Docker镜像ID验证的Bash脚本
原脚本存在三个核心问题:
- 逻辑判断颠倒:匹配到镜像ID时反而输出“不存在”
- 未精确匹配
IMAGE ID列,可能误匹配其他字段内容 - 未限定完全匹配12位镜像ID,部分前缀匹配会导致错误判断
修正后的脚本
#!/bin/bash if [[ $# -eq 0 ]]; then echo "Docker容器ID未提供" else # 仅提取IMAGE ID列,精确匹配12位输入字符串 if docker images --format '{{.ID}}' | grep -q "^$1$"; then echo "$1" else echo "不存在该容器ID $1" fi fi
修改说明
- 使用
docker images --format '{{.ID}}'直接提取所有镜像ID,避免其他字段干扰 - 用
grep -q "^$1$"实现完全精确匹配,确保只有输入的12位字符与镜像ID完全一致时才判定存在 - 修正逻辑判断:匹配成功时输出ID,失败时提示不存在
- 统一中文提示语,符合需求
测试验证
- 无输入执行:
bash has_contained_id.sh
输出:Docker容器ID未提供 - 输入无效短字符:
bash has_contained_id.sh 1
输出:不存在该容器ID 1 - 输入镜像ID前缀:
bash has_contained_id.sh 091f1bf3491
输出:不存在该容器ID 091f1bf3491 - 输入完整12位镜像ID:
bash has_contained_id.sh 091f1bf3491c
输出:091f1bf3491c
内容的提问来源于stack exchange,提问作者Bruno Peixoto
相关产品推荐
相关产品推荐

