Вы можете использовать инструмент unix date для анализа и проверки его для вас, а также для проверки кода возврата, например,
Действительная дата, код возврата 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
Вы можете изменить формат ввода, принятый date , используя параметр + 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