Bash, Bourne-Again SHell, – это невероятно гибкий и мощный интерпретатор командного языка, широко используемый в Unix и Unix-подобных операционных системах .
Он предоставляет широкий спектр возможностей, включая возможность манипулирования данными о дате и времени.
Одним из таких приложений является возможность получения вчерашней даты.
Это может показаться простой задачей, но это полезная техника, которая часто встречается при написании сценариев и выполнении задач автоматизации.
В этой статье мы рассмотрим практическое руководство по получению вчерашней даты на Bash.
Мы рассмотрим основные команды Bash, узнаем о команде date и, наконец, изучим процесс получения вчерашней даты с помощью скриптов.
Понимание команды Date
Прежде чем мы перейдем к получению вчерашней даты, важно сначала понять команду date на Bash.
Команда date используется для отображения или установки системной даты и времени.
По умолчанию, без каких-либо аргументов, она отображает текущую дату и время.
date
Вывод будет представлять собой текущую дату и время, как показано ниже:
Tue May 14 23:23:00 PDT 2023
Команда date также позволяет форматировать вывод.
Например, вы можете вывести дату в формате YYYY-MM-DD с помощью следующей команды:
date +"%Y-%m-%d"
Это приведет к выводу:
2023-05-14
Получение вчерашней даты
Теперь поговорим о том, как получить вчерашнюю дату.
С помощью опции -d или –date команды `date` мы можем отобразить время, описанное строкой, вместо “сейчас”.
Эта строка может быть относительным выражением, например, “1 день назад”.
date -d "1 day ago" +"%Y-%m-%d"
Система выведет дату на один день назад в формате YYYY-MM-DD:
2023-05-13
Важно отметить, что команда date и ее опция -d могут вести себя по-разному в различных Unix-подобных системах.
Например, в системе MacOS для получения вчерашней даты вы будете использовать опцию -v-1d:
date -v-1d +"%Y-%m-%d"
Получение других предыдущих дат
Помимо получения вчерашней даты, команда date также позволяет получить любую предыдущую дату.
Это можно сделать, манипулируя относительным выражением, заданным опцией -d или –date.
date -d "3 days ago" +"%Y-%m-%d"
Эта команда выведет дату трехдневной давности в формате YYYY-MM-DD.
date -d "1 week ago" +"%Y-%m-%d"
date -d "1 month ago" +"%Y-%m-%d"
date -d "1 year ago" +"%Y-%m-%d"
Эти команды выводят даты недельной, месячной и годичной давности соответственно в формате YYYY-MM-DD.
Помните, что в MacOS для получения даты 3 дня назад используется -v-3d, для получения даты 1 недели назад -v-1w, для получения даты 1 месяца назад -v-1m, а для получения даты 1 года назад -v-1y:
date -v-3d +"%Y-%m-%d"
date -v-1w +"%Y-%m-%d"
date -v-1m +"%Y-%m-%d"
date -v-1y +"%Y-%m-%d"
Эти команды обеспечивают большую гибкость в написании скриптах Bash, позволяя вам легко манипулировать данными даты и времени в соответствии с вашими потребностями.
Заключение
Умение работать с данными даты и времени в скриптах Bash – ценный навык.
Будь то ведение лога, создание отчетов или создание файлов резервного копирования, существует множество ситуаций, в которых вам может понадобиться получить вчерашнюю дату.
В этой статье мы показали вам, как это сделать простым и понятным способом.
см. также:
- 🐧 Что означает -z на Bash
- 🐧 Проверка, содержит ли переменная число на Bash
- 📜 Сравнение строк на Bash
- 📜 Преобразование символов в нижний регистр на Bash – проще, чем вы думаете