我在 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
}
我们可以使用相同的函数来比较问题中的 2 个日期:
$ 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
关于linux - bash 按 yyyy-mm-dd 在 N 天内 bash 中 2 个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59548057/