要验证有效日期,请使用以下命令行:
date -d "${DATE}" "+%Y/%m/%d" > /dev/null 2>&1
它在Cygwin下完美运行,但不在我的测试环境中。 以下是有关我的测试环境的一些信息:
uname -a
AIX 152101a07e 3 5 00CDE2314C00
使用命令行:
echo $?
结果始终为1,即使日期有效。
你知道为什么这个测试失败了吗?
答案 0 :(得分:3)
显然,您的两个环境未运行相同版本的date
。您应该检查新环境中man
的{{1}}页面(运行date
)。在我的机器(OS X)上,man date
选项用于设置夏令时。
例如,以下适用于 me :
-d
date -j -f "%Y/%m/%d" "2014/07/09" > /dev/null 2>&1
echo $? # 0
date -j -f "%Y/%m/%d" "2014.07.09" > /dev/null 2>&1
echo $? # 1
告诉它不要尝试设置我的系统日期。 -j
表示使用指定的格式。
您可能会有所不同,但您可以通过阅读手册找到详细信息。