On Mon, Aug 29, 2016 at 5:57 PM, Jarno Suni <jarno.ilari.s...@gmail.com>
wrote:

> declare -A a
> b="80's"
> ((++a[$b]))
> ((++a["$b"]))
> [[ $((++a[$b])) ]] || true
> [[ $((++a["$b"])) ]] || true  # this finally works and makes the variable
> =1
> echo ${a["$b"]}
> echo ${a[$b]}
>

((++a[\$b]))

It's non-intuitive certainly, but let commands don't get evaluated until
after the shell handles variable expansion.

Actually, that raises an interesting question about the differences between
$(( and ((.  The man page says that $(( treats its contents as double
quoted, however, (( is a built-in an not an expansion.  How does (( treat
its contents?


)) )) )) )) ))  *grumblegrumbleunterminatedparensgrumble*

Reply via email to