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
这意味着用户不能在月中输入0或13并输入年份在 年 大于当前年份。
我想知道如何在 日 中做到这一点,例如用户在 年中输入 2015 和 2 在 月 中,即 二月 并且只有 28 天。如果用户将 29 放在 Day 中,这将是无效输入。我希望你们能明白我的意思,抱歉了这么久post。
您可以使用 date 检查日期是否有效。
date "+%d/%m/%Y" -d "dd/mm/yyyy" > /dev/null 2>&1
ret=$?
如果ret
不是 0
,则日期有效
我可以使用
来限制月份和年份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并输入年份在 年 大于当前年份。
我想知道如何在 日 中做到这一点,例如用户在 年中输入 2015 和 2 在 月 中,即 二月 并且只有 28 天。如果用户将 29 放在 Day 中,这将是无效输入。我希望你们能明白我的意思,抱歉了这么久post。
您可以使用 date 检查日期是否有效。
date "+%d/%m/%Y" -d "dd/mm/yyyy" > /dev/null 2>&1
ret=$?
如果ret
不是 0
,则日期有效