Bash 스크립트는 과거의 날짜와 시간을 테스트합니까?

Bash 스크립트는 과거의 날짜와 시간을 테스트합니까?

매개변수 중 하나가 날짜/시간인 bash 쉘 스크립트를 작성 중입니다. 날짜가 과거인지(또는 과거의 어느 시점인지(예: "적어도 3일 전이었나요?")) 확인하는 가장 좋은 방법은 무엇입니까?

bash v4, Ubuntu Linux 18.04+, apt-get.

답변1

GNU date(Ubuntu에서의 구현) 및 해당 -d확장을 사용하여 자연어(영어) 날짜/시간 사양 등을 구문 분석하는 기능입니다. 이 +%s형식은 날짜를 에포크 이후의 초 단위로 변환하므로 쉽게 비교할 수 있습니다.

#!/bin/bash
date='2020-08-12T16:00:10'
epoch=$(date -d "$date" +%s)
if [ "$epoch" -lt "$(date -d '3 days ago' +%s)" ] ; then
    echo At least 3 days ago
else
    echo Too recent
fi

관련 정보