shell 两个日期之间循环

9 篇文章 0 订阅

shell 日期循环

#!/bin/bash

if [ $# == 2 ]; then
    datebeg=$1
    dateend=$2
else
    echo "请输入开始时间和结束日期,格式为2017-04-04"
    exit 1
fi

tStart=$(date +%s)

THIS="$0"
THIS_DIR=`dirname "$THIS"`
cd ${THIS_DIR}

beg_s=`date -d "$datebeg" +%s`
end_s=`date -d "$dateend" +%s`

echo "处理时间范围:$beg_s$end_s"

while [ "$beg_s" -le "$end_s" ];do
    whileStart=$(date +%s)
    day=`date -d @$beg_s +"%Y-%m-%d"`;
    echo "当前日期:$day"
    hive -f ./fct_ordr_path_off.sql -d date=$day
    whileEnd=$(date +%s)
    echo "日期: $day 的数据处理完成!, timeCost:$(($whileEnd-$whileStart)) seconds"
    beg_s=$((beg_s+86400));
done

tEnd=$(date +%s)
echo "日期: $datebeg ~ $dateend 的数据处理完成!, totalTimeCost:$(($tEnd-$tStart)) seconds"
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值