Это работало для меня на OS X:
week_today=$(date "+%W")
week_start_of_month=$(date -v1d "+%W")
week_of_month=$[week_today - week_start_of_month + 1]
Предполагается, что понедельник будет первым днем недели. Если вы хотите, чтобы воскресенье рассматривалось как первый день недели, вам придется заменить %W
на %U
.
Это дает номер недели от 1 до 6. Если вы хотите иметь номер недели с нулевым индексом, просто опустите + 1
в последней строке.