shell 迴圈列印日期(可指定起始日期或預設日期),並返回天數
#!/bin/bash
start_date=$1;
end_date=$2;
##判斷變數,是否為空(如果沒有或只有一個,進行預設賦值)
if [ "$1" == "" ]
then
start_date=`date -d "today last month" "+%Y%m01"`
end_date=`date -d "$2" "+%Y%m%d"`
else
if [ "$2" == "" ]
then
start_date=`date -d "$1" "+%Y%m%d"`
end_date=`date -d "today" "+%Y%m%d"`
fi
fi
##判斷兩個變數是否有問題(可擴充套件,進行可用性識別)
if [ "$start_date" -gt "$end_date" ]
then
echo "ERROR! \nplease input a right date"
exit
fi
##通過迴圈,返回日期值(包含開始和結束日期,閉區間)
for i in `seq 0 100000`
do
t_date=`date -d "${start_date} +$(($i+1)) day" "+%Y%m%d"`
echo $t_date
cnt_days=$i
##如果迴圈到當天,就退出
if [ $t_date == $end_date ]
then
break
fi
done
echo "The days between two date is "+$cnt_days+" !"