栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

shell循环脚本

shell循环脚本

1.循环脚本说明

seq 0 1000 是一个0-1000 的集合,包含前后。
下面脚本是执行的时bizdate 和 curdate 日期之间的 import_t_std_stock_info_daily这个函数。包含bizdate和 curdate 的日期,最长时间间隔为(1001)天

注:脚本1和脚本2的执行结果是一样的

脚本1.sh

# !/bin/bash

# 定义初始时间
bizdate=2019-12-27
curdate=2021-03-11

# 定义sqoop导入函数
import_t_std_stock_info_daily() {

        hive -e "load data inpath '/origin_data/tclmember/events/3/events/$bizdate.txt' OVERWRITE into table tclmember.events partition(dt='$bizdate');"

}

# 循环
for i in `seq 0 1000`
do
        import_t_std_stock_info_daily
        bizdate=`date -d "${bizdate} +1 day" "+%Y-%m-%d"`
#循环到当天,就退出
        if [ $bizdate == $curdate ]
        then
                break
        fi
done

脚本2.sh

#!/bin/bash

# 定义初始时间  测试最小时间2019-07-22   生产最小时间2019-06-03
start='2019-07-22'
end='2021-11-10'

# 因 start 取不到 end 值,最后输出范围是 [start,end) ,先执行:
  end=`date -d "1 day ${end}" +%Y-%m-%d`        # 日期自增

while [[ ${start} != ${end} ]]
do
echo    "=====开始日期为 $start===结束日期为 $end====="
  echo ${start}
# 给脚本传参
  bash /root/bin/t_xiaoke/sh/aa.sh ${start}
  start=`date -d "1 day ${start}" +%Y-%m-%d`    # 日期自增
# 循环到当天就退出
    if [ $start == $end ]
    then
        break
    fi
done
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/467263.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号