bashでexprを使わずにインクリメント処理する。
オライリーの詳解 シェルスクリプトを読んでいたらexprは実装が好ましくないので使わない方がよいとありました。exprを使わないでどうやってインクリメント処理とかを行うのかと思っていたら、単純に変数の上書きでいけるようです。注意点としては(())と括弧が二重になっていること。1重ではエラーとなります。
サンプルソース
#!/usr/bin/sh i=1 while true do echo $i # iを$i+1で上書きする i=$((i+1)) sleep 1 done
実行結果
1 2 3 4 5 6 ^C