如何在 Unix / Linux Shell 脚本中获取 / 打印当前日期
如何在 Unix 或 Linux shell 脚本中获取当前日期并将其存储到 shell 变量中?如何使用 Unix shell 脚本打印当前日期?如何在 Linux shell 脚本中显示当前时间?
您需要使用以下语法在屏幕上打印当前日期和时间:
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 或 Unix 终端 |
类别 | Linux shell 脚本 |
先决条件 | date 命令 |
操作系统兼容性 | BSD • Linux • macOS • Unix |
预计阅读时间 | 3 分钟 |
date date +"%FORMAT" var=$(date) var=`date` echo "$var"
在Unix shell脚本中打印当前日期和时间
要将当前日期和时间存储到变量,请输入:
$ now=$(date)
或
$ now=`date`
在 Unix 中打印当前日期
要打印此日期,请使用printf 或 echo 语句:
或者使用 printf 命令:
或者
$ echo "$now"
$ echo "Current date: $now"
$ printf "%s\n" "$now"
$ printf "Current date and time in Linux %s\n" "$now"
在 Linux shell 脚本中获取当前日期和时间
您可以使用以下语法格式化和显示日期:
date +'FORMAT' ### mm/dd/yyyy ### date +'%m/%d/%Y' ## Time in 12 hr format ### date +'%r' ## backup dir format ## backup_dir=$(date +'%m/%d/%Y') echo "Backup dir for today: /nas04/backups/${backup_dir}"
使用 date 命令在 Linux 或 Unix 中查找当前日期和时间
日期命令格式代码列表
格式代码 | 描述 |
---|---|
%% | 文字 % |
%a | 本地的星期几缩写名称(例如,Sun) |
%A | 本地星期几的完整名称(例如,星期日) |
%b | 区域设置的月份缩写名称(例如 Jan) |
%B | 语言环境的完整月份名称(例如 January) |
%c | 区域设置的日期和时间(例如,Thu Mar 3 23:05:25 2005) |
%C | 世纪;类似 %Y,但省略最后两位数字(例如 20) |
%d | 月份中的日期(例如 01) |
%D | 日期;与 %m/%d/%y 相同 |
%e | 月份中的日期,以空格填充;与 %_d 相同 |
%F | 完整日期;与 %Y-%m-%d 相同 |
%g | ISO 周数的年份的最后两位数字(参见 %G) |
%G | ISO 周数的年份(参见 %V);通常仅与 %V 一起使用 |
%h | 与 %b 相同 |
%H | 小时(00..23) |
%I | 小时(01..12) |
%j | 一年中的某一天(001..366) |
%k | 小时,空格填充(0..23);与 %_H 相同 |
%l | 小时,空格填充(1..12);与 %_I 相同 |
%m | 月 (01..12) |
%M | 分钟(00..59) |
%n | 换行符 |
%N | 纳秒(000000000..999999999) |
%p | 相当于 AM 或 PM 的区域设置;如果未知则留空 |
%P | 类似 %p,但小写 |
%q | 季度 (1..4) |
%r | 本地的 12 小时制时间(例如,晚上 11:11:04) |
%R | 24 小时制小时和分钟;与 %H:%M 相同 |
%s | 自 1970-01-01 00:00:00 UTC 以来的秒数 |
%S | 秒 (00..60) |
%t | 标签 |
%T | 时间;与 %H:%M:%S 相同 |
%u | 星期几 (1..7);1 表示星期一 |
%U | 一年中的周数,以星期日为第一天 (00..53) |
%V | ISO 周数,以星期一为第一天 (01..53) |
%w | 星期几(0..6);0 表示星期日 |
%W | 一年中的周数,星期一为第一天 (00..53) |
%x | 区域设置的日期表示(例如,12/31/99) |
%X | 区域设置的时间表示(例如 23:13:48) |
%y | 年份的最后两位数字(00..99) |
%Y | 年 |
%z | +hhmm 数字时区(例如 -0400) |
%:z | +hh:mm 数字时区(例如 -04:00) |
%::z | +hh:mm:ss 数字时区(例如 -04:00:00) |
%:::z | 数字时区,带 : 以达到必要的精度(例如 -04、+05:30) |
%Z | 字母时区缩写(例如 EDT) |
显示当前日期和时间的 Shell 脚本示例
#!/bin/bash now="$(date)" printf "Current date and time %s\n" "$now" now="$(date +'%d/%m/%Y')" printf "Current date in dd/mm/yyyy format %s\n" "$now" echo "Starting backup at $now, please wait..." # command to backup scripts goes here # ...
结论
您学习了如何在 Linux 和类 Unix 系统上显示当前日期和时间。我们还解释了如何在 shell 变量中存储日期或时间。有关更多信息,请通过键入以下date 命令或此处的GNU/date 帮助页面查看 date 命令手册页:
$ man date