//不使用date -d #!/bin/ksh yy=`date +%Y` mm=`date +%m-1|bc` [ $mm -lt 1 ] && { mm=12; ((yy -= 1)); } [ $mm -le 9 ] && mm="0$mm" getcal=`cal $mm $yy` last_dd=`echo $getcal|awk '{print $NF}'` dd1=`echo $getcal|awk '{print $10}'` first_dd="0$dd1" FirstDay=$yy$mm$first_dd LastDay=$yy$mm$last_dd echo $FirstDay echo $LastDay //使用date -d,需要GNU date #!/bin/ksh Firstday=`date -d "-1 month -$(($(date +%d)-1)) days"` Lastday=`date -d "-$(date +%d) days"` echo $Firstday echo $Lastday