我有一个 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
您可以改变 接受的输入格式日期 通过使用 +格式 选项 ( 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
关于unix - 检查用户在 UNIX 中输入的日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4614759/