我正在尝试创建一个脚本,其中4天前的日期应该等于当前日期,如果不是那么再添加1天并检查。下面是我创建的但仍然不清楚答案。
#!/bin/bash
batchdate=`date --date "4 day ago" '+%Y%m%d'`
matchdate=`date --date "today" '+%Y%m%d'`
for i in {0..4}
do
if [ $batchdate != $matchdate && $NEXT_DATE != $matchdate ]; then
NEXT_DATE=$(date +%Y%m%d -d "$batchdate + $i day")
echo "$NEXT_DATE"
break
fi
done
答案 0 :(得分:5)
首先,定义一个小帮助函数,以避免以稍微不同的方式做同样的事情:
get_date () {
date +%Y-%m-%d --date "$1"
}
现在,您有两个变量:当前日期,它永远不会改变,以及开始日期,您将一次增加一个日,直到它与当前日期匹配。
then=$(get_date "4 days ago")
now=$(get_date "today")
while [[ $then != $now ]]; do
then=$(get_date "$then + 1 day")
echo "$then"
done