Порівняння двох дат

Bash:
Порівняння двох дат

Як це зробити:

Для порівняння дат використовують date та інші команди. Ось кілька прикладів:

# Отримати поточну дату у форматі YYYY-MM-DD
current_date=$(date '+%Y-%m-%d')

# Порівняти з іншою датою
other_date="2023-04-01"
if [[ "$current_date" > "$other_date" ]]; then
  echo "Поточна дата після 2023-04-01"
else
  echo "Поточна дата до або в 2023-04-01"
fi

# Використання date для перетворення в секунди (epoch time) для порівняння
current_epoch=$(date '+%s')
other_epoch=$(date -d "$other_date" '+%s')

if [[ "$current_epoch" -gt "$other_epoch" ]]; then
  echo "Поточна дата після 2023-04-01"
else
  echo "Поточна дата до або в 2023-04-01"
fi

Вивід буде відрізнятися в залежності від поточної дати та дати для порівняння.

Поглиблений розбір:

Перші версії Bash не мали вбудованих засобів для порівняння дат, але з часом додали date для роботи з часом. Порівняння може бути прямим (у форматі рядка) или через секунди з 1970 року (epoch time). Альтернатива date — це [[ ]] для порівняння рядків (працює, якщо формат правильний). Зовнішні інструменти, такі як awk чи perl, також можуть бути використані для порівняння дат.

Дивіться також:

  • Чоловік (man) сторінки date для детального опису (man date в терміналі).
  • Bash Guide for Beginners для базових знань про скрипти Bash.
  • Advanced Bash-Scripting Guide для більш детального розуміння скриптів.
  • Stack Overflow для питань та відповідей щодо порівняння дат у Bash.