linux+shell判断日期,关于linux:在bash shell中检查参数是否为有效日期

我正在Linux中编写bash shell脚本,该程序将接受日期(mm-dd-yyyy)作为参数。 我想知道是否有一种简单的方法来检查日期是否有效? 有操作员,我可以使用测试进行检查吗?

尝试使用date实用程序。

强制性:ISO 8601

您可以使用date -d"datestring"进行检查

因此date -d"12/31/2012"是有效的,但使用连字符,例如date -d"12-31-2012"对date无效。

您也可以使用以下单词:date -d 'yesterday'或date -d '1 week ago'都有效。

Bash不在乎,它的date抱怨连字符。

我只是尝试使用斜杠和反斜杠(bash .4.2.2,日期gnu coreutils 8,4),它很乐意接受两个字符,但不带连字符。

您可以从输入日期值MM-DD-YYYY中提取日,月和年值,然后将其验证为明确(ISO)格式YYYY-MM-DD(可以将DD-MM-YYY格式的日期验证为使用日期"正确",例如25-12-2010,但它不是有效的MM-DD-YYY日期,因此需要首先更改日期格式)

正确格式的有效日期是可以的

2005年11月30日有效:

$ DATE=11-30-2005; d=${DATE:3:2}; m=${DATE:0:2}; Y=${DATE:6:4}; echo"year=$Y, month=$m, day=$d"; if date -d"$Y-$m-$d" &> /dev

你可能感兴趣的:(linux+shell判断日期)