Получение последнего дня для месяца иногда сложно, потому что, конечно, не все месяцы имеют одинаковое число дней.
Один из способов сделать это - получить первый день этого месяцадобавьте к этому месяц (чтобы получить первый день следующего месяца), а затем вычтите день.
date --date="$(date +%Y-%m-01) +1 month -1 day"
thu jan 31 00:00:00 -07 2019
И помните, что date
может выводить любой формат, который вы хотите (аргумент, начинающийся с +
).
date --date="$(date +%Y-%m-01) +1 month -1 day" '+%F'
2019-01-31
См. man date
для получения дополнительной информации или info '(coreutils) date invocation'
для получения дополнительной информации.