Linux shell date 按照時間片段進行迴圈

來源:互聯網
上載者:User

標籤:

記得曾經寫指令碼按照天為單位進行迴圈,迴圈的其實日期可以是任何一天,像這樣:

 1 START_DAY=$(date -d "$TODAY -1days" +%Y%m%d); 2  3 END_DAY=$(date -d "$TODAY -${cycle}days" +%Y%m%d); 4  5 for((;$END_DAY<=$START_DAY; END_DAY=$(date -d "$END_DAY +1days" +%Y%m%d))) 6  7 do 8  9   ...10 11 done
$TODAY是外界傳入的時間參數,比如20141222;
cycle是一個整數,表示希望迴圈的天數,比如一個月 30。
然後再迴圈的時候對END_DAY每次加一天,加夠30次後,迴圈終止。

現在突然需要按照10分鐘的時間片段迴圈。
本以為`date -d "201412021311 +10minutes" +%H:%M`這樣的方式可以湊效的,卻發現這樣寫不行。試來試去,寫作這樣
`date -d "20141202 1311 +10minutes" +%H:%M`才湊效,感覺這樣很奇葩。。。

改造了一下,只在一天內進行迴圈
 1 startpoint=0000; 2 endpoint=0010; 3  4 for((i=1;i<=144;i++)) 5 do 6 startpoint_format=`date -d "$startpoint" +%H:%M;` 7 endpoint_format=`date -d "$endpoint" +%H:%M;` 8 ... 9 startpoint=`date -d "$startpoint +10minutes" +%H%M;`10 endpoint=`date -d "$endpoint +10minutes" +%H%M;`11 done

這樣看來還不錯:)

還可以按照時間戳記增減來做迴圈,沒有這個看著舒心:)

Linux shell date 按照時間片段進行迴圈

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.