在 Linux 系统中,Shell 脚本是自动化任务的得力助手。而处理日期时间则是许多脚本中不可或缺的一环——无论是日志归档、定时备份,还是生成带时间戳的文件名。本文将带你从零开始,轻松掌握 Linux Shell函数 中对日期和时间的操作技巧。

在 Shell 中,获取当前系统时间最常用的就是 date 命令:
$ dateWed Jun 12 10:30:45 CST 2024
这个输出虽然直观,但在脚本中往往需要更灵活的格式。这时就要用到 date 的格式化选项。
通过 + 和格式符,你可以自由组合年、月、日、时、分、秒等元素。例如:
$ date "+%Y-%m-%d"2024-06-12$ date "+%H:%M:%S"10:30:45$ date "+%Y%m%d_%H%M%S"20240612_103045
常用格式符说明:
%Y:四位年份(如 2024)%m:月份(01–12)%d:日期(01–31)%H:小时(00–23)%M:分钟(00–59)%S:秒(00–60)为了提高代码复用性,我们可以将常用的时间操作封装成 Shell函数。下面是一个获取“年月日_时分秒”格式时间戳的函数:
get_timestamp() { date "+%Y%m%d_%H%M%S"}# 调用函数timestamp=$(get_timestamp)echo "当前时间戳:$timestamp"你还可以创建更复杂的函数,比如获取昨天的日期:
get_yesterday() { date -d "yesterday" "+%Y-%m-%d"}yesterday=$(get_yesterday)echo "昨天是:$yesterday"⚠️ 注意:-d选项在 GNU 版本的date(常见于 Ubuntu、CentOS 等)中支持,但在 macOS 或 BSD 系统中可能不可用。
结合前面的知识,我们写一个简单的备份脚本:
#!/bin/bash# 定义获取时间戳的函数get_ts() { date "+%Y%m%d_%H%M%S"}LOG_FILE="/var/log/app.log"BACKUP_DIR="/backup/logs"TS=$(get_ts)# 创建备份cp "$LOG_FILE" "$BACKUP_DIR/app_$TS.log"echo "[$(date '+%Y-%m-%d %H:%M:%S')] 备份完成:app_$TS.log"这个脚本每次运行都会生成一个唯一命名的备份文件,避免覆盖,非常适合日常运维。
timedatectl 查看。date 会影响脚本速度,可缓存结果。gdate(通过 Homebrew 安装 coreutils)。掌握 日期时间处理 是编写专业 Shell 脚本的关键一步。通过合理使用 date 命令和自定义 Shell函数,你可以轻松实现各种时间相关的逻辑。希望这篇 Shell脚本教程 能帮助你迈出自动化运维的第一步!
现在,就去你的终端试试吧!
本文由主机测评网于2025-11-25发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511611.html