前月を知る - sh編
shっていうかdateコマンドですけど。
安直に「1 month ago」でいいじゃん!と思った人は負けです(ぼくもですけど><)。
これはいいんだけど、 $ date '+%Y-%m-%d %T.%N'; date '+%Y-%m-%d %T.%N' -d '1 month ago' 2010-09-16 18:05:00.342008278 2010-08-16 18:05:00.344293593 このケースだと前月になってない # date 053100002010 >/dev/null; date '+%Y-%m-%d %T.%N'; date '+%Y-%m-%d %T.%N' -d '1 month ago' 2010-05-31 00:00:00.000000000 2010-05-01 00:00:00.004000016
set $(date '+%Y %m') y=$1 m=$((${2#0}-1)) mが0だったらyから1引いて...
とかやるのはめんどいなーと思ったら、info にちゃんと書いてありました><
# date 053100002010 >/dev/null; date '+%Y-%m-%d %T.%N'; date '+%Y-%m' -d "$(date '+%Y-%m-15') -1 month" 2010-05-31 00:00:00.000000000 2010-04
なるほど!!!