@gcb Sorry, something ate all-important quotes the first time around. Here's a correction:

```
% x='(PATH=2)'
% echo $((x+1))
3
% echo $PATH
2
```

(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."

lists.gnu.org/archive/html/hel

OMG. This is _not_ documented.

@gcb @rain @kingcons

I hope all the shell scripts in the world are sanitizing their inputs.

@gcb @rain @kingcons

Follow

@akkartik @gcb@mastodon.social @rain@niu.moe it's "lol computers" all the way down

Sign in to participate in the conversation
Tiny Tilde Website

ttw is the unofficial Mastodon instance of tilde.town. We're only smol, but we're friendly. Please don't be a dick.