如何检查输入的数字是否介于1和31之间

时间:2011-01-13 02:24:42

标签: regex bash date

我正在尝试从用户捕获当月的日期并想要检查日期是否有效 - 介于1和31之间。我不希望用户必须添加前导0到单个数字天。如何在bash if语句中完成此检查?

感谢。

3 个答案:

答案 0 :(得分:5)

这不是正则表达式的工作!

这是conditional expression的作业。

以下是一些可以帮助您入门的代码。

if [[ $number -lt 31 ]]; then 
    echo $number is less than 31
else 
    echo $number is greater than 31
fi

当然,日期验证远比这复杂得多。二月有几天?

答案 1 :(得分:2)

使用正确的工具完成工作。正则表达式不适合这项工作。

答案 2 :(得分:2)

只需进行数字比较:

if (( var >= 1 && var <= 31))
then
    echo "Valid"
fi