Sustitución de variables de entorno en sed

Si ejecuto estos comandos desde un script:

#my.sh
PWD=bla
sed 's/xxx/'$PWD'/'
...
$ ./my.sh
xxx
bla

está bien

Pero, si corro:

#my.sh
sed 's/xxx/'$PWD'/'
...
$ ./my.sh
$ sed: -e expression #1, char 8: Unknown option to `s' 

Leí en los tutoriales que para sustituir las variables de entorno del shell, debe detenerse y 'citar' la$varname parte para que no se sustituya directamente, que es lo que hice, y que funciona solo si la variable se define inmediatamente antes.

¿Cómo puedo obtener sed para reconocer un$var como una variable de entorno tal como se define en el shell?

Respuestas a la pregunta(10)

Su respuesta a la pregunta