Скрипт для вывода диапазона дат - PullRequest
2 голосов
/ 08 июля 2011

Я пытался получить сценарий для распечатки диапазона дат от даты начала до следующего дня и до сегодняшнего дня

Пример:

Backup-2011-06-14
Backup-2011-06-15
Backup-2011-06-16

Была идея ниже, но даже не работает, идеи?

start=$(date +%F --date="2011-06-14")
echo "$start"
current=$(date +%F)
echo "$current"
end=$(date +%F)

while [ "$start" != "$current" ]; do
    echo backup-$(( $(date --date="$start" +%F) + $(date +%s --date='1 day') ))
done

1 Ответ

2 голосов
/ 08 июля 2011

Дата по математике в bash сложная. Но команда date поддерживает простое сложение или вычитание из сегодняшней даты. Поэтому в вашем случае необходим другой подход. Сначала определите количество дней, для которых вы хотите вывести эти даты, а затем выведите даты, относящиеся к сегодняшней дате.

#!/bin/bash
days=$(( ($(date +%s)-$(date +%s --date="2011-06-14"))/86400 ))

while [ $days -gt 0 ]; do
    echo backup-$(date --date="-$days days" +%F)
    days=$(($days-1))
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...