我正在检查有效日期scrpt.bash test 2019-05-03
date -d $2 2>: 1>:; c=$?
如果$c
为 1,则日期无效。如果我输入,2019-05-03
我会得到正确的 0。如果我输入,2019-05-03u
我会得到一个 0,这是不正确的。我可以输入2019-05-03uu
然后它会抛出错误。我怎样才能检查日期是否有效。
答案1
如果日期始终以这种格式提供:“2019-05-03”,则这可能始终有效:
#!/bin/sh -
if [ -n "$2" ] && [ "$(date -d "$2" +%Y-%m-%d 2> /dev/null)" = "$2" ]; then
echo 'This date is valid'
fi