shell脚本生成两个数据日期之间的所有日期
在linux下有时候会需要得到两个日期之间的所有日期,作为变量进行处理,例如两个日期之间的所有日期都分别生成一个用日期命名的文件夹。以下shell脚本循环输出两个指定日期之间的所有日期(包括两个输入日期)。#!/bin/bash#以YYYYMMDD格式输出大于等于第一个输入日期,小于等于二个输入日期的所有日期begin_date=$1end_date=$2while ...
·
在linux下有时候会需要得到两个日期之间的所有日期,作为变量进行处理,例如两个日期之间的所有日期都分别生成一个用日期命名的文件夹。以下shell脚本循环输出两个指定日期之间的所有日期(包括两个输入日期)。
#!/bin/bash
#以YYYYMMDD格式输出大于等于第一个输入日期,小于等于二个输入日期的所有日期
begin_date=$1
end_date=$2
while [ "$begin_date" != "$end_date" ]
do
echo $begin_date
let begin_date=`date -d "-1 days ago ${begin_date}" +%Y%m%d`
done
echo $end_date
调用方式方式为: sh genedate.sh YYYYMMDD YYYYMMDD。
测试结果如下:
这里关键在于date的使用,总结linux下date的一些常见使用方法如下:
date [选项]... [+格式]date -d +%Y%m%d 输出格式样例:20180102
date -d +%F 输出格式样例:2018-02-01
date -d '+%F %A' 输出格式样例:2018-02-10 星期六
date -d '+%F %w' 输出格式样例:2018-02-10 6
date -d '-n days ago' +%Y%m%d YYYYMMDD格式今日前第n天的日期
更多推荐
已为社区贡献1条内容
所有评论(0)