UNIX에서 2018-03-28부터 2018-04-02 날짜에 대한 while 루프 구문을 원합니다.
답변1
YYYYMMDD
형식 대신 출력 형식을 사용하고 주석에서 가져온 시작 날짜 및 종료 날짜 변수를 추가하도록 주석에서 사용자의 희망에 따라 편집되었습니다 .YYYY-MM-DD
GNU를 가정하면 date
:
startdate='2018-03-28'
enddate='2018-04-02'
enddate=$( date -d "$enddate" +%Y%m%d ) # rewrite in YYYYMMDD format
i=0
while [ "$thedate" != "$enddate" ]; do
thedate=$( date -d "$startdate + $i days" +%Y%m%d ) # get $i days forward
printf 'The date is "%s"\n' "$thedate"
i=$(( i + 1 ))
done
또는:
startdate='2018-03-28'
enddate='2018-04-02'
enddate=$( date -d "$enddate + 1 day" +%Y%m%d ) # rewrite in YYYYMMDD format
# and take last iteration into account
thedate=$( date -d "$startdate" +%Y%m%d )
while [ "$thedate" != "$enddate" ]; do
printf 'The date is "%s"\n' "$thedate"
thedate=$( date -d "$thedate + 1 days" +%Y%m%d ) # increment by one day
done
산출:
The date is "20180328"
The date is "20180329"
The date is "20180330"
The date is "20180331"
The date is "20180401"
The date is "20180402"