Bash脚本。限制用户输入

时间:2016-07-15 07:21:50

标签: linux bash shell centos7

我可以使用

来限制月份和年份
while :
    do
    if (( 0 <  userAccPDM && userAccPDM <= 12 )); then
            accPDM=$userAccPDM && break
    else
            echo "Try again!" && read -p "Month: " userAccPDM
    fi
done

while :
    do
    curYr=$(date +"%Y")
    if (( userAccPDY <= curYr )); then
            accPDY=$userAccPDY && break
    else
            echo "Try again!" && read -p "Year: " userAccPDY
    fi
done

这意味着用户无法在中添加 0 13 ,并将中的年份设置为大于今年。

我想知道如何在中做到这一点,例如用户在 2 <中输入 2015 / strong> 2月,且只有 28 天。如果用户在中放置 29 ,则输入无效。我希望你们能得到我的意思,并为长篇文章感到抱歉。

1 个答案:

答案 0 :(得分:4)

您可以使用date检查日期是否有效。

date "+%d/%m/%Y" -d "dd/mm/yyyy" > /dev/null 2>&1
ret=$?

如果ret 不是 0,则日期有效