前端之家收集整理的这篇文章主要介绍了
shell 两个日期之间循环,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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"