Shell迴圈獲取日期

2021-10-13 08:12:56 字數 1211 閱讀 1128

大於 -gt (greater than)

小於 -lt (less than)

大於或等於 -ge (greater than or equal)

小於或等於 -le (less than or equal)

不相等 -ne (not equal)

#!/bin/bash

#倒序按天遍歷日期

#傳入遍歷的開始時間和結束時間

startdate=

"$1"

enddate=

"$2"

#序列1-300,表示遍歷300次,因為有結束時間的限制,所以實際上不會迴圈300次

for i in

`seq 1 365`;do

#當開始時間小於結束時間時,直接結束指令碼if[

[$startdate -lt $enddate]]

;then

break

fiecho

$startdate

#每次執行後,使開始日期減一天,如果要正序,將下面-1換成+1即可,當然開始時間和結束時間也要換一下

startdate=

$(date -d "$startdate -1 day" +%y%m%d)

done

end_date=

`date -d "yesterday" +%y-%m-%d`

start_date=

`date -d "30 days ago" +%y-%m-%d`

end=

`date -d "1 day $" +%y-%m-%d`

# 日期自增

while[[

$start_date

!=$end]]

doecho

$start_date

start_date=

$(date -d "$start_date +1 day" +%y-%m-%d)

done

start_date取不到end_date值,即最後輸出的是[start_date,end_date),好像shell裡面並沒有do…while這種迴圈,所以最好在迴圈之前,先做一步處理:

end=date -d "1 day $" +%y-%m-%d# 日期自增

shell獲取日期

1.通過shell獲取當前8位日期,並賦給變數,並且使用變數作為檔名,建立資料夾 ls date date y m d mkdir 獲取日期注意事項 date y m d 這個字串是被英文狀態下的esc下面那個鍵。獲取變數注意事項 必須有 與組成。2.獲取時分秒 date y m d h m s 3...

shell按日期的迴圈

經常有需要按日期執行指令碼補資料。有時候是好幾天的。但是可能整個過程下來會超過24個小時。最早的時候是這樣的乙個方案。for i 0 i 10 i do date date d i days ago y m d sh dojob.sh date done這個方案的不足就是,跨天之後,會漏掉某個日期。...

shell中根據日期進行迴圈

在寫shell指令碼時,我們經常會有需求,對某乙個日期時間範圍內進行迴圈處理,可以通過設定起止日期,在起止日期範圍內進行迴圈,datestart 2016 11 16 dateend 2017 03 07 date s date d s date e date d s while le do sta...