Linux‎ > ‎

シェル - 整数計算をする方法いろいろ



シェル内で整数計算をする方法をいくつか紹介します。

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}