$ month=5; year=2012
$ perl -e 'printf"%02d/%04d\n",@ARGV' $month $year
05/2012
Não me lembro se o Bash tem uma função printf ou sprintf, provavelmente tem algo equivalente útil.
Sim, o bash faz
$ month=5
$ year=2012
$ printf "%02d/%04d\n" $month $year
05/2012
ou, se você precisar do resultado em uma variável use -v
$ printf -v expiry "%02d/%04d" $month $year
$ echo $expiry
05/2012
Além disso, você não precisa invocar date
tantas vezes
$ d=$(date '+%Y %m %d %H %M %S')
$ a=( $d )
$ echo ${a[0]}
2012
$ echo ${a[1]}
10
$ echo ${a[2]}
30
$ echo ${a[3]}
09
$ echo ${a[4]}
59
$ echo ${a[5]}
31
Finalmente, date
por si só pode dar o que você deseja
$ minsec=$(date "+%M/%S")
$ echo $minsec
03/27
Você provavelmente sabe disso, mas se você diminuir o mês, terá 1 - 1 = 12 e diminuirá o ano e verificará se o número do dia está no intervalo (não 31 de fevereiro, não 29 de fevereiro, a não ser ano bissexto) calendário muda em várias datas em várias localidades). Geralmente, é melhor usar uma linguagem de script que tenha bons módulos de controle de datas.