¿Cómo convertir el formato de fecha para dos datetime en bash?

Tengo que convertir la fecha y hora de"Apr 10 16 07:03:04" formatear a"\[10\/12\/16 07:03:04 BST]" formato. Estoy usando la siguiente función.

convert_date () {
local months=( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )
local i
for (( i=0; i<11; i++ )); do
    [[ $1 = ${months[$i]} ]] && [[ $5 = ${months[$i]} ]] && break
done
printf "\[%2d\/%02d\/%02d $4 BST]\n" $2 $(( i+1 )) $3
printf "\[%2d\/%02d\/%02d $8 BST]\n" $6 $(( i+1 )) $7    
}

d=$( convert_date $1 $2 $3 $4 )
e=$( convert_date $5 $6 $7 $8 )
echo $d
echo $e

Donde estará mi opinión

./date.sh Apr 10 16 07:03:04 May 12 16 08:11:09

y mi salida debería ser

\[10\/12\/16 07:03:04 BST]
\[12\/12\/16 08:11:09 BST]

Pero obtengo el siguiente resultado como,

\[10\/12\/16 07:03:04 BST] \[12\/00\/00 BST]
\[12\/12\/16 08:11:09 BST] \[12\/00\/00 BST]

¿Cómo obtener la salida exacta? Por favor ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta