Gentoo linux, GNU bash, version 5.0.18(1)-release (x86_64-pc-linux-gnu) On the above vesion of bash, the following script will not run the echo command and print an error. On bash 4.4 it appears to treat the ${!foo} the same as expanding an unset variable and thus outputs "bar":
unset foo echo ${!foo} bar "shopt -s compat44" does not seem to make a difference -Jason