我正在研究这个基本适用于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直到它到达当前日期,我继续收到错误消息:[20120703:命令未找到 我尝试从while语句中删除引号但仍然是相同的错误消息。 但即使解决了,也会计算实际日期值或数字值?
有什么建议吗?
答案 0 :(得分:7)
使用[
命令时,空格非常重要:
while [ "$dateTale" -lt "$now" ]
另外,在分配变量时不要使用'$'(与perl或php不同):
dateTale=$(date -d "$dateTale + 1 day" +%Y%m%d)
答案 1 :(得分:2)
$dateTale
不是$(dateTale)
。
答案 2 :(得分:0)
#!/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