Evaluate string containing shell variable names

Hello,

I have this:

#!/usr/bin/ksh
V1=ABC
str="hello 123;${V1}"

eval "echo $str"

i get

hello 123
/script.sh ABC not found

However eval works if $str variable doesn't contain a semicolumn (eg if str="hello 123~${v1}"

running the eval statement above would produce

hello 123~ABC

How would I use eval (any other method is fine) to evaluate a string variable whose assigned value contains names of other string variables?

Thnx.

Try...

eval 'echo "$str"'

have a look at this link