Split cada elemento de un array

Tengo el array REGISTROS donde cada elemento es una cadena con 7 campos concatenados por ";" , el caso es que he intentado de varias maneras extraer los campos que me interesan pero la variable CAMPOS por lo que sea no es tratada como array.

for X in ${REGISTROS[*]}
do
        CAMPOS=${X//;/" "} #Quitamos el separador ; por un espacio en blanco
        echo ${CAMPOS[1]}

done

Para que os hagáis una idea un elemento de REGISTRO es del formato: "2011/10/05;OK;BC;40M;Parcial;08:00;09:00" .

He probado a cambiar IFS dentro del array de modo que considera al ; el separador por defecto,,, y es verdad que en dicho caso puedo recorrer el array CAMPOS, pero no acceder a un campo en concreto como ${CAMPOS[1]}.

for X in ${REGISTROS[*]}
do
        IFS_OLD=$IFS
        IFS=";"
        echo "La fecha es ${X[1]}."
        IFS=$IFS_OLD
done

Mi objetivo es poder seleccionar sólo un campo dentro de cada elemento en REGISTROS, lo he conseguido haciendo uso de cut pero mi idea es hacerlo de una manera mas elegante usando los recursos de las variables en BASH.