大於 -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...