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