前日日付Shell
前日日付取得ShellScript
今回は前日日付の求め方のShellScript篇です。
自作ではなく我が社の元常務取締役が現役時代に作成したスクリプトです。閏年対応だとか・・・。Perlが使えないときなどに役立ちそうなのでメモっておきます。
#!/bin/sh # Environment hostname=`hostname` year=`date +%Y` month=`date +%m` day=`date +%d` # Get Date case ${month} in 01) if [ ${day} = 01 ] then year=`expr ${year} - 1` month=12 day=31 else month=12 day=`expr ${day} - 1` fi ;; 03) if [ ${day} = 01 ] then w=0 if [ `expr ${year} % 4` = 0 ] then w=1 if [ `expr ${year} % 100` = 0 ] then w=0 if [ `expr ${year} % 400` = 0 ] then w=1 else w=0 fi else w=1 fi else w=0 fi if [ $w = 0 ] then month=02 day=28 else month=02 day=29 fi else day=`expr ${day} - 1` fi ;; 05|07|10|12) if [ ${day} = 01 ] then month=`expr ${month} - 1` day=30 else day=`expr ${day} - 1` fi ;; *) if [ ${day} = 01 ] then month=`expr ${month} - 1` day=31 else day=`expr ${day} - 1` fi ;; esac yy=${year} mm=${month} dd=${day} if [ ${mm} -lt 10 ] then mm="0${mm}" else mm=${mm} fi if [ ${dd} -lt 10 ] then dd="0${dd}" else dd=${dd} fi