我需要开发一个脚本来测试“现在”(例如 的输出date
)是否在给定范围内。目前,该范围预计是一个月中的天数列表(例如10,11,12,13,21,22,23
)。我可以自己编写代码。
然而,我更愿意使用现有的工具而不是自己编码。我预计范围要求会不断变化,最有可能限制在一天中的某些时间。也许也在一周中的某一天。所以我想到了我们都知道的 cron 语法。
问题:是否有一个工具可以检查给定的日期时间是否在 cron 语法范围“内部”等(不使用 cron 语法的工具也可以)?
答案1
一种可能的方法是使用纪元时间,即从 01.01.1970 00:00 开始的秒数。
首先生成现在的日期和时间:
CDATE=$(date +%s)
然后生成另外两个日期:
F1DATE=$(date -d "11:02 Feb 14 1999" +%s)
F2DATE=$(date -d "12:20 Feb 14 2024" +%s)
然后比较是否CDATE
在F1DATE
和之间F2DATE
:
if [ "$CDATE -gt "$F1DATE" ] && [ "$CDATE" -lt "$F2DATE" ]
then # do the job
fi