мне нужен цикл while для дат с 28 марта 2018 по 02 апреля 2018 в unix

Вы можете добавить команду очистки к «локальной» службе следующим образом:

# echo -e "#!/bin/sh\nclear" > /etc/local.d/clearscreen.start
# chmod +x /etc/local.d/clearscreen.start
# rc-update add local

Последняя команда необходима для запуска «локальной» службы при загрузке, поскольку по умолчанию она отключена.

Дополнительная информация о local.d (и рекомендации):https://wiki.gentoo.org/wiki//etc/local.d

. :Франческо

-5
25.11.2018, 03:00
1 ответ

Editado para usar el formato de salida YYYYMMDDen lugar del formato YYYY-MM-DD, de acuerdo con los deseos del usuario en los comentarios, y agregar las variables de fecha de inicio y fecha de finalización, también tomadas de los comentarios.

Asumiendo GNUdate:

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

Alternativamente:

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

Salida:

The date is "20180328"
The date is "20180329"
The date is "20180330"
The date is "20180331"
The date is "20180401"
The date is "20180402"
2
28.01.2020, 05:20

Теги

Похожие вопросы