我正在研究这个函数,它基本上可以在两个日期上工作。
一个是当前日期,另一个是一个月前的日期。
代码如下:

 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,直到它达到当前日期,但是我一直收到错误消息:[20120703:找不到命令
我试图从while语句中删除引号,但仍然是相同的错误消息。
但即使解决了,它会计算实际的日期值还是数字值?
有什么建议吗?

最佳答案

使用[命令时,空格很重要:

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

另外,在分配给变量时不使用“$”(与perl或php不同):
dateTale=$(date -d "$dateTale + 1 day" +%Y%m%d)

关于linux - 如何在Bash的循环中增加日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11797805/

10-11 06:36