David Margerison wrote:
processSrvState() {
local cur_up="$1[cur_up]"
local max_up="$1[max_up]"
if [[ "${!cur_up}" == "${!max_up}" ]] ; then
echo ok
fi
}
declare -A foo=([cur_up]=11 [max_up]=11)
processSrvState foo
# note that the array name must not conflict with any keys
Thanks for the idea. I put it into a general sub for my use
(no error checking in this version):
hval() { # 1st=mapname, 2nd=key, 3rd=opt. outvar name
dcl _hkey="$1[$2]" nl=""
[[ ! $3 ]] && nl="\n"
printf ${3:+-v $3} "%s$nl" ${!_hkey}
}
so for:
dcl A foo=([one]=1 [two]=2)
hval foo two
2
hval foo two outv
echo $outv
2
Thanks much!