Can't get DF output I desire

I currently have a shell script that creates Oracle databases configured the way we want them here. One part of it allows you to choose which file system to place the database files. This is the command which works.

This produces a list of file systems from which to choose. I have been tasked to change this output to show not only the file system name but the corresponding free space. I have tried several hours worth of variations but have failed miserably. How can I achive this desired output?

Does this do what you want:

pat1=/oradata
pat2=/oraindex
n=0

mkfifo dfout
df > dfout &

while read fs blocks used available pc mount
do
   case $mount in
     *$pat1* | *$pat2* )
         n=$(( $n + 1 ))
         printf "%2d. %s, %s\n" $n "$mount" "$pc"
         eval "fs_$n=\$mount"
         ;;
   esac
done < dfout

printf "Select filesystem (1..%d): " $n
read fs

eval "location=\$fs_$fs"

echo $location