作为一种脚本语言,Bash 广泛用于系统管理任务和自动化。 Bash 脚本中的一项常见任务是获取当前日期和时间。这`date`命令以特定格式返回当前日期和时间,但您也可以使用自定义格式字符串来获取任何格式的日期和时间
在本文中,我们将探讨如何在 Bash 脚本中获取当前日期和时间。
获取当前日期和时间
在 Bash 中,您可以使用 date 命令来获取当前日期和时间。默认情况下,date 命令将以“Day_of_week Month Day Hour:Minute:Second Timezone Year”的格式返回当前日期和时间
例如:
date
Sun Feb 28 23:26:13 UTC 2023
您还可以将命令的输出存储在变量中以供进一步使用。
|
#!/bin/bash
当前日期时间=$(date)
echo “当前日期和时间:$current_date_time”
# 输出:当前日期和时间:Sun Feb 28 23:26:13 UTC 2023
|
自定义格式输出
有几个开关可用于格式化 date 命令的输出。
在 Shell 脚本中使用日期:
您可以简单地在 shell 脚本中使用 date 命令,类似于在命令提示符下使用。创建包含以下内容的 bash 脚本 getDateTime.sh。
|
#!/bin/bash
当前日期=`date +“%Y-%m-%d %T”`
仅当前日期=`date +“%b %d,%Y”`
当前时间=`date +“%Y-%m-%d %T”`
echo Current Date is: ${仅当前日期}
echo Current Date and Time is: `date +“%Y-%m-%d %T”`
echo Current Date and Time is: ${当前日期}
echo Current Unix epoch time is: ${当前时间}
|
现在从命令行执行脚本并观察输出。
./getDateTime.sh
Current Date is: Mar 25, 2019
Current Date and Time is: 2019-03-25 17:18:19
Current Date and Time is: 2019-03-05 17:18:19
Current Unix epoch time is: 1488541699
date 命令的可用选项:
您可以使用 –help 参数找到 date 命令的所有可用选项
date --help
您会发现如下所示的输出以及更多选项。
-
%%
: 字面量 %
-
%a
:区域设置的工作日缩写名称(例如 Sun)
-
%A
:区域设置的完整工作日名称(例如星期日)
-
%b
:区域设置的月份名称缩写(例如 Jan)
-
%B
:区域设置的完整月份名称(例如,一月)
-
%c
:区域设置的日期和时间(例如,Thu Mar 3 23:05:25 2005)
-
%C
:世纪;与 %Y 类似,但省略最后两位数字(例如 21)
-
%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)
-
%l
: 小时 (1..12)
-
%m
: 月 (01..12)
-
%M
:分钟 (00..59)
-
%n
: 换行符
-
%N
:纳秒(000000000..999999999)
-
%p
:区域设置相当于 AM 或 PM;如果不知道则为空白
-
%P
: 类似 %p,但小写
-
%r
:区域设置的 12 小时制时间(例如 11:11:04 PM)
-
%R
:24小时制的小时和分钟;与 %H:%M 相同
-
%s
:自 1970-01-01 00:00:00 UTC 以来的秒数
-
%S
:第二个(00..60)
-
%t
: a tab
-
%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
: year
-
%z
: +hhmm 数字时区(例如 -0400)
-
%:z
: +hh:mm 数字时区(例如-04:00)
-
%::z
: +hh:mm:ss 数字时区(例如-04:00:00)
-
%:::z
: 数字时区 : 达到必要的精度(例如,-04、+05:30)
-
%Z
:字母时区缩写(例如 EDT)
结论
在 Bash 脚本中获取当前日期和时间是一项常见任务,可以使用 date 命令完成。默认情况下,date 命令以特定格式返回当前日期和时间,但您也可以使用自定义格式字符串来获取任何您喜欢的格式的日期和时间。通过了解如何在 Bash 脚本中使用 date 命令,您可以构建使用当前日期和时间的强大自动化脚本。