首页 > 解决方案 > 如何从顺序值中获取计数

问题描述

我想从 20190930 到 20201006 顺序打印。下面的循环将有助于做到这一点。现在,我想将打印的行数存储到一个变量中?

start=20190930
end=$(date -d"2 days ago" +"%Y%m%d")

while [[ $start -le $end ]]
do
        echo $start
        start=$(date -d"$start + 1 day" +"%Y%m%d")
done

电流输出:

20190930
20191001
20191002
20191003
20191004
20191005
etc etc...

如果我得到从 20190930 到 20191010 打印的范围,那么我的输出计数应该如下:

10

标签: bashshellunix

解决方案


这个解决方案怎么样(未测试):

start=20190930
end=$(date -d"2 days ago" +"%Y%m%d")
i=0

while [[ $start -le $end ]]
do
        i=$((i+1))
        echo $start
        start=$(date -d"$start + 1 day" +"%Y%m%d")
done

echo "output count : $i"

推荐阅读