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.