如何对包含日期的变量运行命令?

如何对包含日期的变量运行命令?

我需要能够采用“MM/DD/YY”格式的日期并将其更改回默认日期格式(Fri Oct 31 17:23:07 CDT 2014)。这真让我抓狂。下面的代码可能看起来毫无意义,但这只是我必须做这件事的作业练习 - 有人以 MM/DD/YY 格式输入日期,然后我必须将该日期与文件中存储的日期进行比较以默认格式。

这就是我所在的地方:

#! /bin/bash

date=`date +%D`
newdate=`$date +%a%b%e%H:%M:%S%Z%Y`

echo $newdate

我收到“没有此类文件或目录”错误。首先;我该怎么做我想做的事?第二;有没有更简单的方法来使用默认日期格式而不是“+%a%b%e...blah blah...”?

谢谢你的帮助。

答案1

我不想为你做作业,但这可能会为你指明正确的方向:

#!/bin/sh

date=`date +%D`
echo "Date in MM/DD/YY:"
echo $date

newdate=`date -d $date +"%a %b %e %H:%M:%S %Z %Y"`
echo "Date Expanded:"
echo $newdate

hash="$(echo -n "$newdate" | md5sum | awk '{print $1}')"
echo "Hash of expanded date:"
echo $hash

您可以创建所有扩展日期的哈希值,包括需要将它们进行比较的日期,然后仅比较两个哈希值。如果是,==那么你就有匹配的了。

if [ "$hash1" == "$hash2" ]
then
    echo "Dates are a match!"
else
    echo "Dates are NOT a match..."
fi

相关内容