Linux 基础教程

Linux 参考手册

Linux 笔记

bash 或 shell 通过 date 命令遍历一个日期范围的用法

Linux date 命令详解 Linux date 命令详解


一般 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