我正在尝试比较shell脚本的while
循环中的日期。 shell脚本将由2个条件控制,如下所示:
while [ $currentDate -le $currentDateMonthEnd -a $currentDate -le $toDate ]; do
...
done
以上是我目前的代码,它抱怨"integer expression expected"
。我也尝试过使用&&
和AND
,它们也不起作用并抱怨支架不匹配。
有人可以提供语法来进行上述比较吗?
答案 0 :(得分:1)
dc ()
{
[ $(date +%s -d "$1") $2 $(date +%s -d "$3") ]
}
while dc "$currentDate" -le "$currentDateMonthEnd" && dc "$currentDate" -le "$toDate"
do
# ...
done
答案 1 :(得分: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