Read string from a file,plz help me to check

#!/usr/bin/ksh
exec 0<property
while read newReceiveDir
do
  if [ {$newReceiveDir:0:11} = New receive ]
  then
    sed -e 's//home/joshua/bodi/data/receive/{$newReceiveDir:25}/g/' mp_validate.sh >| mp_validate.sh 
  elif [ {$newReceiveDir:0:8} = New temp ]
  then
    sed -e 's//home/joshua/bodi/data/temp/{$newReceiveDir:22}/g/' mp_validate.sh >| mp_validate.sh 
  elif [ {$newReceiveDir:0:11} = New working ]
  then
    sed -e 's//home/joshua/bodi/data/working/{$newReceiveDir:25}/g/' mp_validate.sh >| mp_validate.sh 
  elif [ {$newReceiveDir:0:11} = New archive ]
    sed -e 's//home/joshua/bodi/data/archive/{$newReceiveDir:25}/g/' mp_validate.sh >| mp_validate.sh 
  fi
done

Something wrong i the above code?

Thank you .

This code is KSH93 specific and contains many errors.

#!/usr/bin/ksh
exec 0<property
while read newReceiveDir
do
   if [ "${newReceiveDir:0:11}" = "New receive" ]
   then
      sed -e "s�/home/joshua/bodi/data/receive�${newReceiveDir:25}�g" mp_validate.sh >| mp_validate.tmp 
   elif [ "${newReceiveDir:0:8}" = "New temp" ]
   then
      sed -e "s�/home/joshua/bodi/data/temp�${newReceiveDir:22}�g" mp_validate.sh >| mp_validate.tmp 
   elif [ "${newReceiveDir:0:11}" = "New working" ]
   then
      sed -e "s�/home/joshua/bodi/data/working�${newReceiveDir:25}�g" mp_validate.sh >| mp_validate.tmp 
   elif [ "${newReceiveDir:0:11}" = "New archive" ]
   then # added
      sed -e "s�/home/joshua/bodi/data/archive�${newReceiveDir:25}�g" mp_validate.sh >| mp_validate.tmp 
   fi
   mv mp_validate.tmp mp_validate.sh
done

You can avoid using nested if :

#!/usr/bin/ksh
exec 0<property
while read newReceiveDir
do
   case "${newReceiveDir}" in
      New\ receive*)
         sed -e "s�/home/joshua/bodi/data/receive�${newReceiveDir:25}�g" mp_validate.sh >| mp_validate.tmp ;;
      New\ temp*)
         sed -e "s�/home/joshua/bodi/data/temp�${newReceiveDir:22}�g" mp_validate.sh >| mp_validate.tmp ;;
      New\ working*)
         sed -e "s�/home/joshua/bodi/data/working�${newReceiveDir:25}�g" mp_validate.sh >| mp_validate.tmp  ;;
      New\ archive*)
         sed -e "s�/home/joshua/bodi/data/archive�${newReceiveDir:25}�g" mp_validate.sh >| mp_validate.tmp  ;;
   esac
   mv mp_validate.tmp mp_validate.sh
done

Jean-Pierre.