我正在写一个shell脚本,并且对为什么我的日期验证代码不起作用感到困惑。我针对发现的类似问题尝试了以下解决方案,但is_valid始终设置为1:
date "+%m/%d/%Y" -d "$1" 2>1 > /dev/null //or.. date -d "2012-02-29" > /dev/null 2>&1 is_valid=$? #always set to 1, even when given a valid date
如何正确验证日期格式?只有格式为MM / DD / YYYY的日期才有效
我也尝试了以下解决方案:Linux Bash-日期格式,但它也总是拒绝日期。
dateMac OS X随附的BSD 不支持该-d选项(或者,它-d用于完全不同的东西)。安装GNUdate,或使用以下命令验证您的输入字符串:
date
-d
date -f "%Y-%m-%d" -j "2012-02-29" >/dev/null 2>&1
会-f提供输入格式,并且-j告诉date您仅输出日期,而不尝试设置系统时钟。
-f
-j