shell 中取当日的前一天的日期
shell 中取当天的前一天的日期
# !/bin/sh # 已经测试通过 startdate=`date` d1=`date '+%Y%m%d'` if test ! "$1" = "" then d1=$1 fi echo "TODAY IS ${d1}" yesterday() { YEAR=`expr substr "${d1}" 1 4` MONTH=`expr substr "${d1}" 5 2` DAY=`expr substr "${d1}" 7 2` if [ $DAY -eq 1 ] then if [ $MONTH -eq 1 ] then YEAR=`expr $YEAR - 1` MONTH=12 else MONTH=`expr $MONTH - 1` fi DAY=`echo \`cal $MONTH $YEAR\`|tail -n1|awk '{print $NF}'` else DAY=`expr $DAY - 1` fi d2=`echo "$YEAR $MONTH $DAY"|awk '{if (length($2)==1) $2=0$2;if (length($3)==1) $3=0$3;printf "%s%s%s",$1,$2,$3}'` } yesterday echo "yesterday IS ${d2}" 还有更简单的方法: shell里直接调用系统变量 获取当天日期`date +%Y%m%d` 获取昨天日期`date -d yesterday +%Y%m%d` 获取前天日期`date -d -2day +%Y%m%d` 依次类推,你可以写一段shell 试验一下: d1=`date +%Y%m%d` d2=`date -d yesterday +%Y%m%d` d3=`date -d -2day +%Y%m%d` 然后 mkdir $d1 mkdir $d2 mkdir $d3