2014-11-05 149 views
0

我需要收集用户输入以确定日期,然后将其与今天的日期进行比较。与bash比较日期

以下是我有:

echo "Enter Current Date (YYMMDD):" 
read date 
current_date= date +"%y%m%d" 
if [ "$date" == "$current_date" ]; then 
     echo "match" 
    else 
     echo "no match" 
fi 

它打印不匹配时,它预计将匹配和不匹配的。

回答

1

试试这个:

echo "Enter Current Date (YYMMDD):" 
read date 
current_date=`date +"%y%m%d"` 

if [ "$date" = "$current_date" ]; then 
     echo "match" 
    else 
     echo "no match" 
fi 

变化是在这条线:

current_date=`date +"%y%m%d"` 

原因:在你的代码,您正在使用current_date= date +"%y%m%d"。虽然你的意图是使用date命令来生成当前日期,但这条线的行为不同(变成等同于current_date =; date +“%y%m%d”;并且current_date的结果是空的,你可以用echo $current_date来验证这一点。提供了更正后,我们正在执行date命令并将输出保存到current_date变量。希望现在很清楚。我不知道如何以更好的方式解释... :-)

+0

太棒了。感谢您的帮助。 – user3521205 2014-11-05 08:00:24

+1

我会为你的答案投票:)。 – user3521205 2014-11-05 08:00:40

+1

你可能想解释它为什么现在起作用了,那是什么错误。 – jrjc 2014-11-05 08:05:09