set -A hash
 hash=([defined_value]=22)
 echo ${hash[defined_value]}
22
 [[ -v ${hash[defined_value]} ]] && echo pass
 [[ -v ${hash[defined_value]} ]] || echo fail
fail
[[ -v {hash[defined_value]} ]] || echo fail
fail
[[ -v hash[defined_value] ]] || echo fail
fail
[[ -v \${hash[defined_value]} ]] || echo fail
fail
 echo $BASH_VERSION
4.2.45(1)-release


How do I test if a value is defined in a hash?

This seems more messy and isn't -v supposed
to help clean up such things?
 [[ ${hash[defined_value]:-""} ]] || echo fail  #it passes
 [[ ${hash[defined_value1]:-""} ]] || echo fail
fail

So why no '-v'??  :-(



Reply via email to