f() { declare -p ${!var*} | grep ^var; declare -p var ; } var[0]=X var[@]=Y f unset -f f unset -v var typeset -A var f() { declare -p ${!var*}; } var[0]=X var[@]=Y f : ${THIS_SH:=./bash} env 'v[0]=help' ${THIS_SH} -c 'printenv "v[0]"' unset -v var f() { test -v 'var[0]'; echo $?; } var[0]=X f unset -v var