如何提高猛砸一环内的日期(How to increase a date within a loop

2019-09-20 17:51发布

我工作的这个功能基本上适用于2个日期。 一个是当前的日期,另一个是1个月前的日期。 继承人的代码:

 dateTale=$(date -d "$(date) - 1 month" +%Y%m%d)
 now=$(date +%Y%m%d)
 while ["$dateTale" -lt "$now"]
  do 
   $dateTale=$(date -d "$dateTale + 1 day" +%Y%m%d) 
  echo "adding" 
 done

正如你可以看到我试图增加dateTale,直到达到当前的日期,BUIT我不断收到错误消息:20120703:找不到命令我试图从while语句相同的错误消息中,但仍去除引号。 但是,即使解决了的时候,会-lt计算出实际的日期值或数字吗?

有什么建议?

Answer 1:

空间使用时,是很重要的[命令:

while [ "$dateTale" -lt "$now" ]

此外,分配给变量的时候(不像Perl或PHP),您不使用“$”:

dateTale=$(date -d "$dateTale + 1 day" +%Y%m%d)


Answer 2:

$dateTale不是$(dateTale)



Answer 3:

#!/bin/sh

dateTale=$(date -d "$(date) - 1 month" +%Y%m%d)
now=$(date +%Y%m%d)


 while [ $dateTale -lt $now ]
  do
   dateTale=$(date -d "$dateTale + 1 day" +%Y%m%d)
  echo $dateTale
 done


文章来源: How to increase a date within a loop in Bash
标签: linux bash