我用bash写了一个长脚本,以某种方式我能够以yyyy-mm-dd格式打印2个日期。
我的输出像是2019-12-30和2019-12-21
第一个日期始终是昨天的日期,我的输出不会打印日期功能,它只会打印日期值,所以。我需要告诉bash它的日期,并给我几天的时间。
#!/bin/bash
START=$(date --date=yesterday +%F)
END=$(date --date "2 days ago" +%F)
DIFF=$(( $END - $START ))
echo " $DIFF "
它只显示85。我如何获得像“ 1”这样的日期的差异(2天前-昨天)
[如果有人回答并给出解释,我将不胜感激
PS:我不知道datediff是否是预制的。 Linux的功能,不在我的centos中6
扩大我的评论:
请参阅接受的答案 Quickly calculate date differences
回答该问题的人编写了一个名为datediff
的自定义函数:
$ datediff() {
d1=$(date -d "$1" +%s)
d2=$(date -d "$2" +%s)
echo $(( (d1 - d2) / 86400 )) days
}
我们可以使用相同的功能来比较问题中的两个日期:
$ START=$(date --date=yesterday +%F)
$ END=$(date --date "2 days ago" +%F)
$ echo "${START} : ${END}"
2019-12-30 : 2019-12-29
$ datediff "${START}" "${END}"
1 days