0

我正在尝试比较whileshell 脚本循环中的日期。shell 脚本将由 2 个条件控制,如下所示:

while [ $currentDate -le $currentDateMonthEnd -a $currentDate -le $toDate ]; do
...
done

以上是我当前的代码,它抱怨"integer expression expected". 我也尝试过使用&&and AND,它也不起作用并且抱怨不匹配的大括号。

有人可以提供进行上述比较的语法吗?

4

2 回答 2

1
dc ()
{
  [ $(date +%s -d "$1") $2 $(date +%s -d "$3") ]
}

while dc "$currentDate" -le "$currentDateMonthEnd" && dc "$currentDate" -le "$toDate"
do
  # ...
done
于 2013-06-10T15:10:31.340 回答
0

以下代码对我有用,

#! /bin/bash

toDate=`echo 2014/03/30 | tr -d "/"`
currentDate=`date +"%Y/%m/%d" | tr -d "/"`
currentDateMonthEnd=`date +%Y/%m/%d -d "-$(date +%d) days +1 month" | tr -d "/"` 

while [[ $currentDate -le $currentDateMonthEnd ]] && [[ $currentDate -le $toDate ]]   
do   
...  
done


#! /bin/sh 

while [ $currentDate -le $currentDateMonthEnd ] && [ $currentDate -le $toDate ] 
do   
...  
done
于 2014-03-29T06:48:20.143 回答