@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

@kingcons @akkartik @gcb@mastodon.social

shit like this is why I made s lol. github.com/rain-1/s

Sign in to participate in the conversation
niu.moe

Welcome to your niu world ! We are a cute and loving international community O(≧▽≦)O !