一般 t+1 的离线任务中,往往需要遍历一定时间范围内日期,然后将每天的日期作为参数或条件进行下一步操作,主要用 date 命令指定特定格式及日期增减量的描述,而且在 linux 和 mac 系统上参数略有不同。
linux 平台下
数值范围用 {start ... end}
的格式,假设昨天到 7 天前日期遍历,具体示例代码如下:
for i in {1..7}
do
day=`date +%Y%m%d -d "-$i days"`
echo $day
done
mac 平台下
date 命令的增减量表示与 linux 平台有所不同,上述 case 的 mac 示例如下:
#! /bash/sh
for i in {1..7}
do
day=`date -v -"$i"d +%Y%m%d`
echo $day
done