检查用户在UNIX中输入的日期和时间

我有一个
Shell脚本,它使用用户输入的日期和时间参数.

日期为mm / dd / yyyy,时间为HH:MM.

什么是检查用户输入正确日期最简单的方法[像月份应该少于12 ….对于时间MM应该小于60 …

我们在UNIX中是否有任何内置函数来检查时间戳? 最佳答案 您可以使用unix日期工具为您解析和验证它,并测试返回代码,例如

有效日期,返回码为0:

joel@bohr:~$date -d "12/12/2000 13:00"
Tue Dec 12 13:00:00 GMT 2000
joel@bohr:~$echo $?
0

无效日期,返回码1:

joel@bohr:~$date -d "13/12/2000 13:00"
date: invalid date `13/12/2000 13:00'
joel@bohr:~$echo $?
1

您可以使用FORMAT选项(man date)更改按日期接受的输入格式

把它们放在一起作为一个小脚本:

usrdate=$1
date -d "$usrdate"  > /dev/null 2>&1
if [ $? -eq 0 ]; then
        echo "Date $usrdate was valid"
else
        echo "Date $usrdate was invalid"
fi
点赞