Como imprimir texto entre palavras específicas (como argumentos de entradas) no script de Shell

Quero imprimir texto completo entre palavras específicas. Aqui está o meu requisito.

"123.log" contém o texto abaixo.

EBSPRODSTART
web logic server
Oracle database administration
Linux operating system
EBSPRODEND
A saída deve ser: -
web logic server
Oracle database administration
Linux operating system
Breve:-

Acima da palavra "EBSPROD" está o nome do banco de dados. Este valor será um argumento de entrada. por exemplo.

$ DBNAME=EBSPROD
$ echo $DBNAME
EBSPROD
$

Estou tentando como abaixo, mas não está imprimindo nenhum valor.

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

Se estou passando o valor DBNAME diretamente, estou obtendo a saída como abaixo.

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

Nota: - DBNAME não terá o mesmo valor sempre que eu executar o script.

questionAnswers(1)

yourAnswerToTheQuestion