Cómo imprimir texto entre palabras específicas (como argumentos de entrada) en scripts de Shell

Quiero imprimir el texto completo entre palabras específicas. Aquí está mi requisito.

"123.log" contiene el texto debajo.

EBSPRODSTART
web logic server
Oracle database administration
Linux operating system
EBSPRODEND
La salida debe ser: -
web logic server
Oracle database administration
Linux operating system
Breve:

Por encima de la palabra "EBSPROD" es el nombre de la base de datos. Este valor será un argumento de entrada. p.ej

$ DBNAME=EBSPROD
$ echo $DBNAME
EBSPROD
$

Estoy intentando como a continuación, pero no está imprimiendo ningún valor.

$ cat 123.log |sed -n '/^$DBNAMESTART$/,/^$DBANEMEND$/p'

Si estoy pasando el valor DBNAME directamente, obtengo la salida de la siguiente manera.

$ cat 123.log |sed -n '/^EBSPRODSTART$/,/^EBSPRODEND$/p'
web logic server
Oracle database administration
Linux operating system
$

Nota: - DBNAME no tendrá el mismo valor cada vez que ejecute el script.

Respuestas a la pregunta(1)

Su respuesta a la pregunta