Csak jelzem, hogy a bash-ban az
i=$[$i+1];
(hivatalos néven aritmetikai helyettesítés) az pontosan ugyanaz, mint a
i=$(($i+1));
(amit írtam - csak az általam használt szintaxist a ksh is megeszi, nem csak a bash), ellenben viszont teljesen más, mint az általam a példában szintén szereplő
typeset -i i ; i=i+1
ami viszont kihasználja a változók "integer" tipusú példányainak speciális kezelhetőségét.
Más szóval: teljesen máskódbázis értelmezi azt amit te írtál, meg amit én.