매개변수 중 하나가 날짜/시간인 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