您的位置:首页 > 游戏 > 游戏 > 扬中网_万州网站制作_google广告投放_福州seo视频

扬中网_万州网站制作_google广告投放_福州seo视频

2025/4/9 23:12:19 来源:https://blog.csdn.net/mo_sss/article/details/146562006  浏览:    关键词:扬中网_万州网站制作_google广告投放_福州seo视频
扬中网_万州网站制作_google广告投放_福州seo视频

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关

  • 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息

文章目录

  • Shell脚本中的日期变量详解
    • 📅 基础用法示例
    • 🌟 扩展日期格式
    • ⚠️ 注意事项
    • 🔧 完整脚本示例
    • 🚨 常见错误
    • 🔍 调试技巧
    • 💡 高级用法


📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

Shell脚本中的日期变量详解

在 Shell 脚本中使用日期变量时,通常需要结合 date 命令动态生成时间戳。以下是常见用法和注意事项:


📅 基础用法示例

#!/bin/sh# 定义日期变量(格式示例:20240327)
TODAY=$(date +%Y%m%d)# 构建 Docker 镜像时使用日期标签
docker build -t sb_back:$TODAY .

🌟 扩展日期格式

根据需求调整 date 的格式参数:

# 带时间的格式(示例:20240327_153045)
TIMESTAMP=$(date +%Y%m%d_%H%M%S)# 人类可读格式(示例:2024-03-27)
HUMAN_DATE=$(date +%F)# 其他自定义格式(示例:27Mar2024)
CUSTOM_DATE=$(date +%d%b%Y)

⚠️ 注意事项

  1. Shell 环境差异

    • 如果使用 #!/bin/sh,确保 date 命令支持你的格式(BSD 和 GNU date 可能有差异)。
    • 如需复杂操作,建议改用 #!/bin/bash
  2. Docker 标签合法性

    • Docker 标签只能包含小写字母、数字、下划线、.-,不能包含空格或特殊字符(如 : 在标签中本身就是分隔符)。
  3. 时区问题

    • 默认使用系统时区,如需指定时区:
      # 使用 UTC 时区(需 GNU date)
      UTC_DATE=$(date -u +%Y%m%d)
      

🔧 完整脚本示例

#!/bin/sh# 生成日期变量
IMAGE_TAG=$(date +%Y%m%d_%H%M%S)# 构建镜像
docker build -t sb_back:$IMAGE_TAG .# 可选:同时标记为 latest
docker tag sb_back:$IMAGE_TAG sb_back:latest

🚨 常见错误

  1. 语法错误

    # 错误:漏掉 $ 符号或命令替换符
    TODAY=date +%Y%m%d         # ❌
    TODAY=$(date +%Y%m%d)      # ✅
    
  2. 格式冲突

    # 错误:空格未用引号包裹
    docker tag sb_back:$(date +%c)  # ❌ 若日期含空格会报错
    docker tag sb_back:"$(date +%c)"  # ✅ 用引号包裹
    

🔍 调试技巧

  1. 先打印变量值

    echo "当前标签:$IMAGE_TAG"
    docker build -t sb_back:$IMAGE_TAG .
    
  2. 检查命令展开

    # 直接替换变量查看最终命令
    set -x  # 开启调试模式
    docker build -t sb_back:$IMAGE_TAG .
    set +x  # 关闭调试模式
    

💡 高级用法

如果需要动态计算日期(如昨天、明天):

# GNU date 用法(Linux 系统)
YESTERDAY=$(date -d "yesterday" +%Y%m%d)
TOMORROW=$(date -d "tomorrow" +%Y%m%d)# BSD date 用法(macOS 系统)
YESTERDAY=$(date -v-1d +%Y%m%d)
TOMORROW=$(date -v+1d +%Y%m%d)

通过合理使用日期变量,可以让你的脚本更灵活地管理镜像版本! 🚀


📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com