set -u
array=()
__ref=array[@]
: "${array[@]}" # Reports nothing
: "${!__ref}" # Unbound variable

Using bash version 5.1.4. I know this can be avoided by using namerefs
instead but indirection is more portable when no assignment is needed
and this sometimes allows my portable functions to have less versions.

The detection of unbound variables seem to have become more reasonable
since 5.0 and I hope it gets improved further.  I don't use set -u in
older bash and it's only for development mode.

-- 
konsolebox

Reply via email to