Shell执行任务时有时需要对hive表做遍历操作并按照dt进行分区,dt数较少时可以采用for循环,但有时需要对一个时间段内的日期进行遍历,这时候就可以使用while对日期进行遍历。
下面分别采用for循环和while循环对日期进行遍历:
For循环:
for i in {20190801,20190802,20190803}
do
echo ${i}
done
While循环:
输入开始和结束日期 就可以实现遍历 记得在前后括号两边加上空格 否则会报错~
start_day=20190801
end_day=20190803
dt=$start_day
while [[ $dt < `date -d "+1 day $end_day" +%Y%m%d` ]]
do
echo $dt
dt=`date -d "+1 day $dt" +%Y%m%d`
done