BASH-сравнение даты и времени в файле переменной

Вы не установили пакет kernel-devel .

-1
04.04.2018, 14:22
2 ответа

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

startdate=${startdate//\"/}
stime=$(date -d "${startdate/T/ }" +%s)
enddate=${enddate//\"/}
etime=$(date -d "${enddate/T/ }" +%s)
let elapsed=etime-stime
[ $elapsed -gt 300 ] && echo "taking too long"
1
28.01.2020, 05:10

Дата GNU может выполнять математику напрямую (в секундах ).
POSIX-скрипт.

#!/bin/sh

sd='"2018-03-30T13:42:12Z"'
ed='"2018-03-30T13:42:21Z"' 

sd=${sd#\"}; sd=${sd%\"}    # Remove double quotes.
ed=${ed#\"}; ed=${ed%\"}

ep=$(date -d @0)              # Epoch date (anchor).
ss=$(date -d "$sd" +%s)       # Start time.
es=$(date -d "$ed" +%s)       # End time.
elapsed=$(date -d "$ep - ${ss}sec + ${es}sec" +%s)

if [ "$elapsed" -gt 300 ]]; then 
    echo "taking too long"
fi
1
28.01.2020, 05:10

Теги

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