アウトプットができる技術者に

it's a time to take a new step !

Batch処理 Dateコマンドで年月を求める際の注意点

Dateコマンドで先月を求めるときは、注意

こうやって書いてはいけない

date -d"${ymd} 1 month ago" +"%Y%m"

月末にきちんと動作しないため

# NGなケース
ymd=20140329
date -d"${ymd} 1 month ago" +"%Y%m"
201403

# 28までは必ず先月中に日付があるので問題ない
ymd=20140328
date -d"${ymd} 1 month ago" +"%Y%m"
201402

dateコマンドでやるなら、1日から1月前にしてあげるのが無難

ymd=20140329
date -d"${ymd:0:6}01 1 month ago" +"%Y%m"
201402