On Mon, Jan 12, 2015 at 05:26:15PM +0800, l_j_f wrote: > for ((idx=0; idx<3 && idx != current; idx++)); do > echo $idx > done
> # I think it should be > 0 > 2 No, this is not a bug. The second expression in "for ((expr; expr; expr))" tells bash when to terminate the entire for loop. So, the loop terminates when idx == current. If you just want to skip a single iteration when idx == current, do it like this: for ((idx=0; idx<3; idx++)); do if ((idx == current)); then continue; fi echo "$idx" done