Uma solução (meio feia), usando a avaliação aritmética BASH e o comando GNU date
:
echo $(date +%Y)q$(( ($(date +%-m)-1)/3+1 ))
echo $(date -d "-1 month" +%Y)q$(( ($(date -d "-1 month" +%-m)-1)/3+1 ))
Observe que %-m
evita date
do preenchimento 0,
então isso ainda funcionará para agosto e setembro.