Bash 脚本。限制用户输入

Bash script. Limit user input

我可以使用

来限制月份和年份
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

这意味着用户不能在中输入013并输入年份在 大于当前年份。

我想知道如何在 中做到这一点,例如用户在 年中输入 2015 2 中,即 二月 并且只有 28 天。如果用户将 29 放在 Day 中,这将是无效输入。我希望你们能明白我的意思,抱歉了这么久post。

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

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

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