On 27.12.19 17:02, Thorsten Glaser wrote: > Erm… that’s right, += is string concatenation.
ok, I got it that this seems to be the idea here, but 1. what about typeset -i x=0; x+=1; echo $x # → 1 (as in ksh/bash/zsh) if += categorically does string concat no matter what, should this not yield "01"? 2. the trio ksh93/bash/zsh all adjust the meaning of += to denoting integer addition/increment if the variable is declared integer. do you consider this "evil" and intentionally do not do it? it bit me when porting a somewhat elaborate script from ksh93 to mksh: suddenly 1+=1 yielded 11 rather than 2. I'm not sure what the "mission statement" of mksh is (if any) but I see that you come closer to ksh93 than bash in some regards (e.g. `set -A' and '${... ;}' command substitution are provided) and presume it is intended to emulate ksh93 where the latter is not manifestly broken? meaning: should mksh not follow the other shells (notably ksh) in how they handle += for integer variables? > > Write “let” before the line to make it integer addition. understood. thanks for pointing this out. I never so far hat any use for `let' ;) -- You received this bug notification because you are a member of mksh Mailing List, which is subscribed to mksh. Matching subscriptions: mkshlist-to-mksh-bugmail https://bugs.launchpad.net/bugs/1857702 Title: " +=" operator does string concatenation for integer variables Status in mksh: New Bug description: consider typeset -i x=0; x+=1; echo $x # → 1 (as in ksh/bash/zsh) but typeset -i x=1; x+=1; echo $x # → 11 (rather than 2 as in the other shells) I believe mksh should honour the integer declaration and interpret `+=' accordingly. currently, it does not even consistently use string concatentation (since the first example does not yield `01' ...). To manage notifications about this bug go to: https://bugs.launchpad.net/mksh/+bug/1857702/+subscriptions