二重括弧を使って変数をインクリメント出来たりします。それをインクリメントしたい場合1((i++))とするだけで良いよ、という話。拡張機能を使えるならexprは使わないほうが良いです。Commands(複合コマンド)の一種です。その結果をシェル的に(0が正常終了、それ以外がエラー終了)返している感じです。$?0みたいな感じで中身が0の場合だけシェル的にエラー終了な状態になります。((i++))の終了ステータスここで、次の様なシェルスクリプトを考えます。((i++))done単に-2から0までを順に出力するだけのスクリプト。$?1とエラー終了になっています。これは、最後に評価されるのが((i++))で、一番最後にはこのiが0だからです。後ろ++がある場合には評価されるときには変化する前のものが評価されます。この場合は最後は((0))になるわけです。なってスクリプトの終了ステータスは0になります。思わない状態になってしまいます。((++i))の場合でも条件によっては同じことが起こります。ステータスを含めて終了する様にすれば良いかと。