我正在尝试创建一个脚本,其中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
Run Code Online (Sandbox Code Playgroud)
首先,定义一个小辅助函数,以避免以稍微不同的方式做同样的事情:
get_date () {
date +%Y-%m-%d --date "$1"
}
Run Code Online (Sandbox Code Playgroud)
现在,你有两个变量:当前日期,这将永远不会改变,并开始日期,你会增加一个在一天的时间,直到它当前的日期相匹配.
then=$(get_date "4 days ago")
now=$(get_date "today")
while [[ $then != $now ]]; do
then=$(get_date "$then + 1 day")
echo "$then"
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1252 次 |
| 最近记录: |