셸 날짜 순

1631 단어
더 읽 기
        날짜 에 따라 스 크 립 트 를 실행 하여 데 이 터 를 보충 해 야 하 는 경우 가 많 습 니 다.때로는 며칠 동안.하지만 전체 과정 이 24 시간 이 넘 을 수도 있 습 니 다.
최초 에는 이런 방안 이 었 다.
for((i=0;i<10;i++));
do
       date=`date -d  "$i days ago" +"%Y%m%d"`
       sh dojob.sh $date
done

 
        이 방안 의 부족 은 하루 가 지나 면 어떤 날 짜 를 빠 뜨 린 다 는 것 이다.나중에 프로필 을 사용 하 는 방법 이 탄생 했다.할 날 짜 를 한 텍스트 에 쓰다.줄 마다 날 짜 를 하나씩 쓰다.
file=/data/datelist.txt

while read day
do
      sh dojob.sh ${day}

done < $file

 
         이 방안 은 유사 한 프로필 을 이용 한 것 이다.분 산 된 날짜 에 대해 서 는 이런 방식 으로 이 루어 질 수 있다.
 
        방안 1 에 대해 서 는 또 하나의 수정 방안 이 있다.배열 을 이용 하 는 방식 입 니 다.
 
for day in {20160801..20160811}
do
      sh dojob.sh $day
done

 
           부족 한 점 은 달 을 넘 을 수 없다 는 것 이다.그래서 타임 스탬프 로 처리 할 수도 있 습 니 다.
 
 
startDate='20160621'
endDate='20180620'

for((ts=`date -d "${startDate}" +"%s"`;ts<=`date -d "${endDate}" +"%s"`;ts+=86400 ));
do
     day=`date  -d @${ts} +"%Y%m%d"`
     sh dojob.sh $day
done

 
          상례 의 재 개량 버 전 (시간 경 계 는 년, 월, 일 을 지원 할 수 있 습 니 다):
 
startDate=20171201
endDate=20171205
while [[ $startDate -le $endDate ]];
do
   echo $startDate
   startDate=`date -d "$startDate 1 days" +"%Y%m%d"`
done

 

좋은 웹페이지 즐겨찾기