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.