YEAR=`date +%Y`
DAY=`date +%d`
MONTH=`date +%m`
DAY=`expr $DAY - 2`
if [ $DAY -le 0 ]; then
MONTH=`expr $MONTH - 1`
if [ $MONTH -eq 0 ]; then
MONTH=12
YEAR=`expr $YEAR - 1`
fi
LASTLINE=`cal $MONTH $YEAR | grep "[0-9]" | tail -1`
LASTDAY=`echo $LASTLINE | sed "s/.* \([0-9][0-9]*\)/\1/"`
if [ $DAY -lt 0 ]; then
DAY=`expr $LASTDAY - 1`
else
DAY=$LASTDAY
fi
fi
if [ $MONTH -lt 10 ]; then
MONTH=0$MONTH
fi
if [ $DAY -lt 10 ]; then
DAY=0$DAY
fi
qiantian="$YEAR$MONTH$DAY"
echo $qiantian
DAY=`date +%d`
MONTH=`date +%m`
DAY=`expr $DAY - 2`
if [ $DAY -le 0 ]; then
MONTH=`expr $MONTH - 1`
if [ $MONTH -eq 0 ]; then
MONTH=12
YEAR=`expr $YEAR - 1`
fi
LASTLINE=`cal $MONTH $YEAR | grep "[0-9]" | tail -1`
LASTDAY=`echo $LASTLINE | sed "s/.* \([0-9][0-9]*\)/\1/"`
if [ $DAY -lt 0 ]; then
DAY=`expr $LASTDAY - 1`
else
DAY=$LASTDAY
fi
fi
if [ $MONTH -lt 10 ]; then
MONTH=0$MONTH
fi
if [ $DAY -lt 10 ]; then
DAY=0$DAY
fi
qiantian="$YEAR$MONTH$DAY"
echo $qiantian
本文介绍了一个用于计算前天具体日期的Shell脚本。该脚本通过一系列条件判断和字符串操作实现了跨月和跨年的日期计算。适用于需要获取历史日期的应用场景。
512

被折叠的 条评论
为什么被折叠?



