输出10天期限是否结束

问题描述 投票:0回答:1

我想编写一个bash脚本,确定相对于开始日期的10天时间(十年)已经结束(格式为YYYY-MM-DD)。如果10天期限已完成,脚本必须输出10天期限。我是bash的新手,并且在代码中存在很多语法错误,请帮助我。

#!/bin/bash
# GNU bash, version 4.3.46

CURRENT_DATE=$(date +%Y-%m-%d)
START_DATE=2019-01-01

IS_TODAY_DECADE_CALCULATION_DAY = (CURRENT_DATE - START_DATE) % 10

if [ $IS_TODAY_DECADE_CALCULATION_DAY -eq 0 ]
then
  BEGIN_DATE = $("$CURRENT_DATE - 11 days" +%Y-%m-%d)"
  END_DATE = $("$CURRENT_DATE - 1 day" +%Y-%m-%d)"

  echo "Period is="$BEGIN_DATE":"$END_DATE"
else
  echo "Decade is not finished."
fi
bash shell period
1个回答
0
投票

您应该比较Unix时间戳。如果时间戳“现在+ 10天”大于开始日期,则该期间结束。

#! /bin/bash

START_DATE=2019-01-01
TEST_DATE_NOW=$(date "+%s" -d "-10 days")
TEST_DATE_OLD=$(date -d ${START_DATE} "+%s")

if [ ${TEST_DATE_NOW} -ge ${TEST_DATE_OLD} ]; then
        echo "Ten days period ended"
else
        echo "Still in ten day period"
fi
exit 0;
© www.soinside.com 2019 - 2024. All rights reserved.