Unixでは、2018-03-28から2018-04-02までの日付にwhileループを実行したいと思います。

Unixでは、2018-03-28から2018-04-02までの日付にwhileループを実行したいと思います。

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"

おすすめ記事