shell - 日期比较在 shell 脚本中无法正常工作

标签 shell date cron ksh

我想比较 shell 脚本中的日期。 我使用的逻辑如下:

$date_1="Tue Nov 25 23:50:01 CST 2014"
$date_2=$(date)
if [ $date_2 -eq $date_1 ] ; then
      echo "$date2 is equal to $date_1"
else
      echo "$date2 is not equal to $date_1"
fi

但是,当我每分钟使用 crontab 执行脚本时,
我在日志中收到以下消息,该消息不正确:

Tue Nov 25 23:50:01 CST 2014 is not equal to Tue Nov 25 23:50:01 CST 2014

你能帮我摆脱这种尴尬的境地吗?

最佳答案

假设该作业每分钟运行一次。你可以这样做:

date_1="Tue Nov 25 23:50:01 CST 2014"

dt1=$(date -d "$date_1" '+%Y%m%d%H%M')

dt2=$(date '+%Y%m%d%H%M')

if [ "$dt1" -eq "$dt2" ]; then
      echo "$dt2 is equal to $date_1"
else
      echo "$dt2 is not equal to $date_1"
fi

关于shell - 日期比较在 shell 脚本中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27142501/

相关文章:

自动输入密码的shell脚本

sql - 在 SQL/ORACLE 中将列的数据类型 "varchar' 更改为 "DATE"

shell - 将 Apache Spark Shell 与 Cron 结合使用 - 如何操作?

php - MAC 操作系统上的 Cron 作业问题

bash - 在bash脚本中减去两个时间戳

bash - 使用 unix find 查找许多文件扩展名和名称的优雅方法

shell - 如何在Docker容器中一个接一个地运行多个入口点脚本?

php - 如何在 DATETIME 字段中使用 BETWEEN 或 <,> 运算符

ruby - 为什么我可以在不需要 'date' 的情况下使用 Date 类?

amazon-web-services - 如何仅在 AWS AutoScaling 中的单个实例上运行 cron 作业?