shell 两个日期之间循环

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

shell 日期循环

  1. #!/bin/bash
  2. if [ $# == 2 ]; then
  3. datebeg=$1
  4. dateend=$2
  5. else
  6. echo "请输入开始时间和结束日期,格式为2017-04-04"
  7. exit 1
  8. fi
  9.  
  10. tStart=$(date +%s)
  11.  
  12. THIS="$0"
  13. THIS_DIR=`dirname "$THIS"`
  14. cd ${THIS_DIR}
  15.  
  16. beg_s=`date -d "$datebeg" +%s`
  17. end_s=`date -d "$dateend" +%s`
  18.  
  19. echo "处理时间范围:$beg_s$end_s"
  20.  
  21. while [ "$beg_s" -le "$end_s" ];do
  22. whileStart=$(date +%s)
  23. day=`date -d @$beg_s +"%Y-%m-%d"`;
  24. echo "当前日期:$day"
  25. hive -f ./fct_ordr_path_off.sql -d date=$day
  26. whileEnd=$(date +%s)
  27. echo "日期: $day 的数据处理完成!,timeCost:$(($whileEnd-$whileStart)) seconds"
  28. beg_s=$((beg_s+86400));
  29. done
  30.  
  31. tEnd=$(date +%s)
  32. echo "日期: $datebeg ~ $dateend 的数据处理完成!,totalTimeCost:$(($tEnd-$tStart)) seconds"

猜你在找的Bash相关文章