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

Как распечатать команду bash history и добавить ее в файл?
Нет необходимости в экспорте при выполнении функций в subshell
Обнаружение известного компьютера в общедоступной сети в BASH
Как изменить диск с bash на windows?
Я добавил новый путь в список путей, но не смог выполнить программу из любого места linux
Bash генерировать отформатированную дату за последние 6 месяцев
Man-страницы для Git Bash в Windows 7
Bash: получение сообщений от фонового процесса
Добавление пользовательских строк в файл с помощью shell-скрипт
Mac OSX Mavericks-ZSH не может "Источник ~/.zshrc' слишком много открытых файлов
Как добавить пункты меню в меню Gnome "приложения" из командной строки?
частичное завершение пути к каталогу в стиле emacs в bash
cronjob Открытие, то сразу закрытие туннеля ssh
tar: не удается создать символическую ссылку: файл существует
Как передать параметр в команду linux в конце строки

Bash генерировать отформатированную дату за последние 6 месяцев

Я хочу запустить скрипт для получения результатов из api за каждый день за последние 6 месяцев. Конечная точка api использует дату как

/url/yyyy/mm/dd

Как я могу генерировать даты, используя bash, чтобы достигнуть этого?

5
задан sayth
источник

1 ответов

следующий скрипт, вероятно, сделает вас-хотя вы, возможно, захотите вычислить 6 месяцев назад (в секундах точнее - я просто использовал 31 days * 6).

#! /bin/bash

URL="/url/"

# Key times in seconds
sixmonths=$(( 60 * 60 * 24 * 31 * 6 ))
oneday=$(( 60 * 60 * 24 ))
CURRENTSECS=`/bin/date +%s`
STARTDATEINSECS=$(( $CURRENTSECS - $sixmonths ))

i=$STARTDATEINSECS
while [ $i -le $CURRENTSECS ]
do
    echo $URL`/bin/date -d @$i +"%Y/%m/%d"`
    i=$(( $i + $oneday ))
done
2
отвечен davidgo 2017-07-13 10:42:00
источник

Другие вопросы bash bash-scripting date