様々ある。
参考
方法
((count++))
let count++
count=\
expr $count + 1``
((count++))
OK
count=0 while [ $count -lt 3 ]; do ((count++)) done
count=$((++count))
の部分は、以下のように置き換えることができる。
: $((count++))
count=$((++count))
count=$((count+1))
((count++))
(事前に数値として初期化(count=0
等)した場合のみ)
実行速度が速い。表記も短い。ただし、以下のようにわずかな表記の違いでバグる罠が多数ある。
NG 1
count=0 while [ $count -lt 3 ]; do count=$((count++)) done
無限ループになる。インクリメント前の値が代入されてしまうため。
NG 2
count=0 while [ $count -lt 3 ]; do $((++count)) done
以下のエラーとなる。数値がそのままコマンドとして認識されてしまうため。
コマンドが見つかりません
NG 3
count=0 while [ $count -lt 3 ]; do count+=1 done
文字列結合になってしまう。
他コマンド
実行速度が遅い。
expr
let
let
count=0 let count++
let a++
は以下のように置き換え可。
let count=$count+1
let count=($count + 1)
expr
count=0 count=`expr $count + 1`
実行速度が遅い上に、表記が冗長。