@gcb Sorry, something ate all-important quotes the first time around. Here's a correction:
% echo $((x+1))
% echo $PATH
(The original `x=(PATH=2)` without quotes doesn't actually perform any eval.)
Does it make sense now? This is indeed quite subtle.
"..things that can be parsed as variable names are treated as variable names in arithmetic contexts. ..bash does this *recursively* until it gets to an integer, or to something that can't be parsed as either an integer or a variable name."
OMG. This is _not_ documented.
Server run by the main developers of the project It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!