Я пишу сценарий BASH, который вызывает API, представляющий показатели для определенных периодов времени. Я планирую запускать скрипт в задании cron 1-го числа каждого месяца, вызов API должен содержать время начала и окончания и быть в формате эпохи с миллисекундами. Миллисекунды должны быть в порядке, чтобы установить значение 000, поскольку оно не обязательно должно быть таким конкретным, но этого требует API.
Как я могу закодировать скрипт для просмотра текущего удобочитаемого времени, а затем посмотреть точно такое же время ровно за 1 календарный месяц до этого, затем преобразовать оба вывода в эпоху, а затем ввести время эпохи в команду curl в качестве переменной?
Пример:
Скрипт запускается в 1:00 1 июля, затем скрипт понимает полный календарный месяц до 1 июня, преобразует оба в эпоху, помещает их в команду curl с использованием переменных.
Я понимаю, как получить удобочитаемую дату на 1 месяц назад, однако я не уверен, как лучше преобразовать эти даты в эпоху.
date --date = "1 month ago" +"%d%m%Y"
Это дубликат? stackoverflow.com/questions/1092631/…
Я бы так не сказал, скорее для сценария, который я пытаюсь создать. Это разговор в переменной, это часть моей проблемы





Чтобы создать переменную, используя дату в эпоху с миллисекундами:
ENDDATE=`date +%s%N | cut -b1-13`
STARTDATE=`date --date = "1 month ago" +%s%N | cut -b1-13`
Используйте эти переменные в команде cURL.
Пара советов: не используйте имена переменных ALLCAPS; используйте $(...) вместо обратных кавычек.
date --date = "1 месяц назад" +"%s" должно работать