シェル内で整数計算をする方法をいくつか紹介します。
exprコマンドを使う方法
よく見かける書き方。コマンドとバッククォートを使う為、少し回りくどいかも。
i=0
i=`expr ${i} + 3`
echo ${i}
# これはダメ。「3++」という文字列になってしまう
i=`expr ${i}++`
echo ${i}
整数型を指定し変数を定義する方法
すっきりした記述になる。お勧め。
declare -i j=1
echo ${j}
j=j+2
echo ${j}
j=${j}+2
echo ${j}
# これはダメ。「command not found」のエラーになる
j++
echo ${j}
その他(bashなら)
以下のいずれでもOK。 (以下の実行で1~9を表示)
k=0
k=$[k + 1]
echo ${k}
k=$[$k + 1]
echo ${k}
k=$(($k + 1))
echo ${k}
k=$((k + 1))
echo ${k}
# ※「:」と「$」の間にスペースが必要
: $((k = k + 1))
echo ${k}
: $((k = k + 1))
echo ${k}
echo $((k = k + 1))
echo $((k = k + 1))
let k=k+1
echo ${k}
以下の記述ならインクリメントも可能。 (以下の実行で1~5を表示)
k=0
: $[k++]
echo ${k}
: $((k++))
echo ${k}
echo $[k++]
echo $((k++))
let k++
echo ${k}
|