Функции bash
olegon 16 сентября, 2008 - 10:23
Не подскажете, как в баше сравнивать дату с текущей? Надо, чтобы если текущая дата больше заданной мной, то выполнялся определенный блок.
»
- Для комментирования войдите или зарегистрируйтесь
Выведите дату в
Выведите дату в формате date +%Y%j(год-число_дней_с_начала_года) и сравнивайте. Я так примерно backup делаю:
Фрагмент скрипта
# Проверяем, делалось ли резервирование сегодня
CHECK_LOCK="${HOME}/home-rdiff.lock"
### ЗАПУСКАЕМ СКРИПТ ###
#
# Если lock-файла нет или он создан на несколько дней раньше, выполнить резервирование.
if [[ ! ( -f ${CHECK_LOCK} ) || $(cat ${CHECK_LOCK} ) -lt `date +%Y%j` ]];
# В предыдущей строке в date +%j дополнительно поставил %Y (год в формате YYYY),
# иначе с наступлением следующего года нумерация в CHECK_LOCK была бы больше текущей даты.
then
....
fi
....
# Создаём временную метку созданного бэкапа.
# В предыдущей строке в date +%j дополнительно
# поставил %Y (год в формате YYYY),
# иначе с наступлением следующего года
# нумерация в CHECK_LOCK была бы больше текущей даты.
echo "`date +%Y%j`" > ${CHECK_LOCK}
немного не то,
немного не то, что я хотел :)
но решение нашел, спасибо за подсказку с датами
#!/bin/bash
if [ "`date +%Y%j`" -gt "2008100" ]
then
date +%Y%j
fi