2ヶ月前の年月を表示するシェルスクリプトを作りました

ども、たきたきでっす。

タイトルどおりですが、2ヶ月前の年月を表示するシェルスクリプトを作りました。

#!/bin/sh
current_month=`date +'%Y/%m/01'`
two_months_ago=`date -d "${current_month} 2 month ago" +'%Y%m'`
echo $two_months_ago

上記スクリプトを実行すると、

$ sh test.sh
202001

と2ヶ月前の年月が表示されます。

シェルスクリプトの2行目がポイントでこれをやらないと問題が生じてしまいます。

具体的に言うと、4月30日にこのスクリプトを実行した場合、2行目を抜かしてしまうと、『202002』とは表示されずに、『202003』と表示されてしまいます。4月30日の2ヶ月前を2月30日と認識してしまい、2月30日→3月1日(2020年はうるう年なので)となってしまうからです。

なので、日付は1日!と事前に決め打ちすることによりこういった問題が生じなくなります。

この事をちょいちょい忘れてしまうので自戒を込めて投稿してみましたw

コメント

タイトルとURLをコピーしました