主要な演算子一覧
Bash の算術式では、C言語に準拠した多くの演算子が利用可能です。
| 演算子 | 種類 | 例 |
|---|---|---|
| + - * / % | 四則演算・剰余 | a + b, a % b |
| ** | べき乗 | 2 ** 3 (結果: 8) |
| ++ -- | インクリメント・デクリメント | i++, --i |
| += -= *= /= %= | 代入演算子 | a += 5 |
| == != < > <= >= | 比較(条件判定) | a == b, a > 5 |
| && || ! | 論理演算 | a > 0 && b < 10 |
基本的な四則演算
整数の加減乗除と剰余(あまり)を計算できます。
足し算 (+)
echo $((10 + 5))
引き算 (-)
echo $((10 - 5))
掛け算 (*)
echo $((10 * 5))
割り算 (/)
整数のみを扱い、端数は切り捨てられます。
echo $((10 / 3))
剰余 (%)
割ったときの「あまり」を計算します。
echo $((10 % 3))
小数の計算(注意点)
Bash の算術式展開は「整数のみ」を扱います。小数は計算できず、エラーまたは端数の切り捨てが発生します。
端数の切り捨て
割り算の結果に小数点以下が含まれる場合、その部分は切り捨てられます。
echo $((10 / 3))
小数の演算(エラー)
式の中に . を含む小数を記述すると、構文エラーになります。
# このコードはエラーになります
echo $((1.5 + 2.0))
小数の計算が必要な場合
標準の機能では小数を扱えません。以下は awk を利用して小数の計算を行う例です。
awk 'BEGIN { print 1.5 + 2.0 }'
変数を使った計算
算術式の中では、変数名に $ を付けずに記述できます。
$ なしでの記述
n=10
echo $((n + 5))
$ ありでの記述
n=10
echo $(($n + 5))
インクリメント・デクリメント
値を 1 増やしたり減らしたりします。
インクリメント (++)
i=10
((i++))
echo $i
デクリメント (--)
i=10
((i--))
echo $i
代入演算子
変数の値を更新しながら計算します。
加算代入 (+=)
n=10
((n += 5))
echo $n
乗算代入 (*=)
n=10
((n *= 2))
echo $n
条件判定としての利用
((...)) を使って、数値の比較を真偽値として判定できます。
数値の比較
n=10
if ((n > 5)); then
echo 'n は 5 より大きいです'
fi
複数の条件判定
n=10
if ((n > 5 && n < 20)); then
echo 'n は 5 より大きく 20 未満です'
fi