On Thu, May 3, 2012 at 2:53 AM, Pierre Gaston <pierre.gas...@gmail.com> wrote: > On Thu, May 3, 2012 at 9:34 AM, Pan ruochen <panruoc...@gmail.com> wrote: >> Hi All, >> >> Suddenly I found that ((i++)) is not supported on bash. >> Just try the following simple case: >> $i=0; ((i++)); echo $? >> And the result is >> 1 >> which means an error. >> I got the same result on GNU bash, version 4.1.2(1)-release >> (x86_64-redhat-linux-gnu) and GNU bash, version 4.1.10(4)-release >> (i686-pc-cygwin). >> >> - BR, Ruochen >> > > It has always been the case, and fits the documentation since i++ > value is 0 and that is false in the arithmetic context. > > What changed is that it bash exits in this case if you use set -e. > Some Possible workarounds: > ((i++)) || : > ((i+=1)) > i=$((i+1)) > and a gazillon others. >
The most sane workaround would probably be to stop using set -e. But another one, just for S&G: ((i++, 1))