Это будет запутано в сценарии оболочки.Вам лучше использовать Date :: Manip в Perl или что-то подобное на другом полнофункциональном языке.Тем не менее, я могу придумать несколько способов сделать это с помощью команды date.Прежде всего, вы можете использовать параметр --date, чтобы установить начальную точку для даты, например, так:
$ date --date='08-JUN-2011'
Wed Jun 8 00:00:00 EDT 2011
Вы можете получить предыдущую дату, например:В последний день месяца я бы просто возвращался с 31 до тех пор, пока свидание не провалится.Вы можете проверить $?за это
$ date --date='31-JUN-2011';echo $?
date: invalid date `31-JUN-2011'
1
$ date --date='30-JUN-2011';echo $?
Thu Jun 30 00:00:00 EDT 2011
0
за первый день месяца ... обычно это 01:)