编辑代码

#!/bin/bash
read -n 8 -p "input your time:" date1
echo ''
read -p "input your number:" N
echo ''
read -n 1 -p  "if you want add,please input "+" else input "-":" f
echo ''
#date=$date1
#echo $date

#字符偏移,截取长度
Y=${date1:0:4}
M=${date1:4:2}
D=${date1:6:2}

#echo $Y
#echo $M
#echo $D
#val=`expr $Y + 3`
#echo $val

DN=`expr $D + $N`

if [ $f = "+" ]
then

   case $M in
    #31天
    01) 
        #天数加完后小于等于31
        if [ $DN -le 31 ]
        then
            #echo "$Y$M$DN"
            printf '%02d' $Y $M $DN
        #大于
        elif [ $DN -gt 31 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 31`
            printf '%02d' $Y $MN $DN2
        else
            echo "input your number"
        fi
    ;;
    02)  
        if [ $DN -le 30 ]
        then
            printf '%02d' $Y $M $DN
        elif [ $DN -gt 30 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 30`
            #echo "$Y$MN$DN2"
            printf '%02d' $Y $MN $DN2
        else
            echo "input your number"
        fi
    ;;
    03)
        if [ $DN -le 31 ]
        then
            printf '%02d' $Y $M $DN
        elif [ $DN -gt 31 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 31`
            #echo "$Y$MN$DN2"
            printf '%02d' $Y $MN $DN2
        else
            echo "input your number"
        fi
    ;;
    04)
        if [ $DN -le 30 ]
        then
            printf '%02d' $Y $M $DN
        elif [ $DN -gt 30 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 30`
            #echo "$Y$MN$DN2"
            printf '%02d' $Y $MN $DN2
        else
            echo "input your number"
        fi
    ;;
    05)
        if [ $DN -le 31 ]
        then
            printf '%02d' $Y $M $DN
        elif [ $DN -gt 31 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 31`
            #echo "$Y$MN$DN2"
            printf '%02d' $Y $MN $DN2
        else
            echo "input your number"
        fi
    ;;
    06)
        if [ $DN -le 30 ]
        then
            printf '%02d' $Y $M $DN
        elif [ $DN -gt 30 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 30`
            #echo "$Y$MN$DN2"
            printf '%02d' $Y $MN $DN2
        else
            echo "input your number"
        fi
    ;;
    07)
            if [ $DN -le 31 ]
        then
            printf '%02d' $Y $M $DN
        elif [ $DN -gt 31 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 31`
            #echo "$Y$MN$DN2"
            printf '%02d' $Y $MN $DN2
        else
            echo "input your number"
        fi
    ;;
    08)
        if [ $DN -le 31 ]
        then
            printf '%02d' $Y $M $DN
        elif [ $DN -gt 31 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 31`
            #echo "$Y$MN$DN2"
            printf '%02d' $Y $MN $DN2
        else
            echo "input your number"
        fi
    ;;
    09)
        if [ $DN -le 30 ]
        then
            printf '%02d' $Y $M $DN
        elif [ $DN -gt 30 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 30`
            #echo "$Y$MN$DN2"
            printf '%02d' $Y $MN $DN2
        else
            echo "input your number"
        fi
    ;;
    10)
        if [ $DN -le 31 ]
        then
            printf '%02d' $Y $M $DN
        elif [ $DN -gt 31 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 31`
            #echo "$Y$MN$DN2"
            printf '%02d' $Y $MN $DN2
        else
            echo "input your number"
        fi
    ;;
    11)
        if [ $DN -le 30 ]
        then
            printf '%02d' $Y $M $DN
        elif [ $DN -gt 30 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 30`
            #echo "$Y$MN$DN2"
            printf '%02d' $Y $MN $DN2
        else
            echo "input your number"
        fi
    ;;
    12)
        if [ $DN -le 31 ]
        then
            printf '%02d' $Y $M $DN
        elif [ $DN -gt 31 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 31`
            #echo "$Y$MN$DN2"
            printf '%02d' $Y $MN $DN2
        else
            echo "input your number"
        fi
    ;;    
    *)  
        echo '月份请输入01~12之间的数字'
    ;;
esac
elif [ $f = "-" ]
then

   case $M in
    #31天
    01) 
        #天数加完后小于等于31
        if [ $DN -le 31 ]
        then
            #echo "$Y$M$DN"
            printf '%02d' $Y $M $DN
        #大于
        elif [ $DN -gt 31 ]
        then
            MN=`expr $M + 1`
            DN2=`expr $DN - 31`
            #echo "$Y$MN$DN2"
            printf '%02d' $Y $MN $DN2
        else
            echo "请输入数字"
        fi
    ;;
    02)  echo '你选择了 2'
    ;;
    03)  echo '你选择了 3'
    ;;
    04)  echo '你选择了 4'
    ;;
    05)  echo '你选择了 1'
    ;;
    06)  echo '你选择了 2'
    ;;
    07)  echo '你选择了 3'
    ;;
    08)  echo '你选择了 4'
    ;;
    09)  echo '你选择了 1'
    ;;
    10)  echo '你选择了 2'
    ;;
    11)  echo '你选择了 3'
    ;;
    12)  echo '你选择了 4'
    ;;    
    *)  echo '月份请输入01~12之间的数字'
    ;;
esac
else
   echo "请输入+或者-号"
fi