【问题标题】:Compare dates with bash [duplicate]用 bash 比较日期 [重复]
【发布时间】:2015-01-01 08:11:54
【问题描述】:

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

这是我所拥有的:

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  

它在预期匹配和不匹配时打印不匹配。

【问题讨论】:

    标签: bash unix


    【解决方案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 变量。希望现在很清楚。我不知道如何以更好的方式解释...... :-)

    【讨论】:

    • 太棒了。感谢您的帮助。
    • 您可能想解释一下为什么它现在可以工作,以及错误是什么。
    猜你喜欢
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 2012-06-25
    • 2011-02-14
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多