Проверьте, находится ли отметка времени в следующем N-минутном окне, используя Bash - PullRequest
0 голосов
/ 20 октября 2019

Я хочу проверить, находится ли отметка времени в пределах следующего 30 минут с использованием Bash.

То, что я сделал, это:

if [ $a -lt $(($(date +%s) + 30*60)) ] ; then

Здесь $a - моя временная метка, которую я хочу проверить. Однако это дает совпадение не только на следующие 30 минут (это то, что я хочу), но и на 30-минутное окно, которое уже прошло.

1 Ответ

0 голосов
/ 20 октября 2019

Тест, который вы реализовали, проверяет, является ли TIMESTAMP <(СЕЙЧАС + 30 минут). Это приведет к тому, что все прошлые даты (например, 2010) будут приняты. </p>

Подумайте о переходе на тестирование в диапазоне СЕЙЧАС: СЕЙЧАС + 30 минут

NOW=$(date '+%s')
if [ "$a" -ge "$NOW" -a "$a" -lt "$((NOW+30*60)) ] ; then
...
...