#计算某日前若干天日期 #date=YYYYMMDD #Usage:command date day get_before_days() { str= days= yy=`echo $str|cut -c 1-4` mm=`echo $str|cut -c 5-6` dd=`echo $str|cut -c 7-8` sav_dd=$days days=`expr $days - $dd` while [ $days -ge 0 ] do mm=`expr $mm - 1` [ $mm -eq 0 ] && mm=12 && yy=`expr $yy - 1` aaa=`cal $mm $yy` bbb=`echo $aaa|awk '{print $NF}'` days=`expr $days - $bbb` done dd=`expr 0 - $days` expr $dd : "^.$" > /dev/null && dd=0$dd expr $mm : "^.$" > /dev/null && mm=0$mm echo $yy$mm$dd }
get_lastday_of_lastmonth() { yy=`date +%Y` mm=`date +%m-1|bc` [ $mm -lt 1 ] && mm=12;yy=`expr $yy - 1` aaa=`cal $mm $yy` dd=`echo $aaa|awk '{print $NF}'` echo $yy$mm$dd }
print $NF的$NF是打印最后一个列。因为awk的内置变量NF是列的总数,而$NF就代表着最后一列
|