2015-03-25 147 views
2

我正在嘗試返回MONTHNO變量中指定月份的月份的最後一天。返回月份的最後一天

所以當MONTHNO點至二月例如考慮到我們是在四月年月日應返回20150228

MONTHNO=`date -d "2 month ago" "+%m"` 
YEAR=`date +%Y` 
YYYYMMDD=`date +%Y%m%d` 

感謝

回答

5

你可以在有幾個步驟。這裏的技巧是要到月開始一個你感興趣後,再回到哪一天:

m=$(date -d "1 month ago" "+%m") 
y=$(date "+%Y") 
temp=$(date -d "${y}${m}01") 
d=$(date -d "$temp - 1 day" "+%Y%m%d") 

正如我們目前是在三月份,這給出結果:

20150131 

當然,my變量可以組合,爲您節省了一步:

ym=$(date -d "1 month ago" "+%Y%m") 
temp=$(date -d "${ym}01") 

你甚至可以窩對date的呼叫(儘管可能以可讀性爲代價)在「一步」中完成:

d=$(date -d "$(date -d "$(date -d "1 month ago" "+%Y%m")01") - 1 day" "+%Y%m%d") 
相關問題