本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
第14回 数値の計算をしてみよう:$(( ))で四則演算を行う方法 | はじめてのシェルスクリプト

はじめに
この連載では、macOS のターミナルで sh を使いながら、シェルスクリプトの基本を順番に学んでいきます。
これまでの回では、変数・条件分岐・ループ・関数といった、シェルスクリプトの基本構造を学んできました。これらを組み合わせることで、かなり柔軟な処理が書けるようになりましたね。
しかし、シェルスクリプトで数値を扱おうとしたとき、「なぜ count = count + 1 と書いても動かないのだろう?」と戸惑う人は多いです。シェルでは、変数の中身はすべて「文字列」として扱われるため、数値の計算には専用の書き方が必要です。
第14回では、$(( )) を使った数値の計算方法を学びます。足し算・引き算・掛け算・割り算といった四則演算の書き方を身につけると、カウンタ管理や計算結果を使った処理など、応用の幅がぐっと広がりますよ。
この回で学ぶこと
- シェルでの数値の扱い
$(( ))の基本- 加算の方法
- 減算の方法
- 乗算と除算の基本
- 計算結果を変数に入れる方法
- 初学者がつまずきやすい書き方
シェルで数値を計算する
$(( )) を使う
シェルで数値の計算をするときは、$(( )) を使います。
たとえば、3 + 2 を計算するなら次のように書きます。
echo $((3 + 2))実行結果は 5 になります。
計算結果は数値として扱われる
$(( )) の中では、加算、減算、乗算、除算などの計算ができます。
計算した結果をそのまま表示することも、変数に入れることもできます。
サンプルコード
calc_sample.sh に次の内容を保存します。
#!/bin/sh
a=10
b=3
echo "Add: $((a + b))"
echo "Sub: $((a - b))"
echo "Mul: $((a * b))"
echo "Div: $((a / b))"実行手順
1. ファイルを作成して保存する
エディタで calc_sample.sh という名前のファイルを作成し、次の内容を保存します。
#!/bin/sh
a=10
b=3
echo "Add: $((a + b))"
echo "Sub: $((a - b))"
echo "Mul: $((a * b))"
echo "Div: $((a / b))"2. スクリプトを実行する
次のコマンドを実行します。
sh calc_sample.sh実行結果は次のようになります。
Add: 13
Sub: 7
Mul: 30
Div: 3この例では、除算の結果は整数で表示されます。
3. 数値を変えて試す
a や b の値を変更して、計算結果がどう変わるか確認してください。
コードの読み方
a=10 と b=3
計算に使う数値を変数へ入れています。
$((a + b))
これは加算です。
a と b を足した結果を返します。
$((a - b))
これは減算です。
a から b を引いた結果を返します。
$((a * b))
これは乗算です。
a と b を掛けた結果を返します。
$((a / b))
これは除算です。
整数同士の計算では、小数ではなく整数の結果になります。
計算結果を変数に入れる
計算結果は、次のように変数へ入れることもできます。
total=$((a + b))
echo "$total"この場合、計算結果が total に入ります。
後から何度でも使えるので便利です。
初学者がつまずきやすい点
普通のかっこで計算しようとしてしまう
シェルでは、数値計算に $(( )) を使います。
通常の丸かっこだけでは計算になりません。
変数名の前に $ を書く場所が分からなくなる
$(( )) の中では、a + b のように書けます。
この形では、変数名の前に $ を付けなくても動きます。
除算で小数が出ると思ってしまう
整数同士の除算では、小数ではなく整数の結果になります。
よくあるエラー
計算結果が表示されない
$(( )) の形が正しいか確認してください。
echo $((a + b))のように書きます。
変数に文字列が入っている
数値計算に使う変数には、数値を入れているか確認してください。
思った結果と違う
演算子や変数の値を確認してください。
特に除算は整数になることを意識して見直してください。
練習用コード
次の内容で math_practice.sh を作成して実行してみてください。
#!/bin/sh
x=8
y=2
sum=$((x + y))
diff=$((x - y))
product=$((x * y))
quotient=$((x / y))
echo "sum: $sum"
echo "diff: $diff"
echo "product: $product"
echo "quotient: $quotient"x と y の値を変えて、計算結果がどう変わるか確認してください。
この回で理解しておくこと
- シェルの数値計算では
$(( ))を使う - 加算、減算、乗算、除算を基本的に扱える
- 計算結果をそのまま表示できる
- 計算結果を変数へ入れて再利用できる
$(( ))の中では変数名をそのまま書ける- 整数同士の除算は整数の結果になる
まとめ
今回は、$(( )) を使って数値の計算を行う基本を確認しました。
計算を使えるようになると、カウンタ処理や条件分岐で数値を扱いやすくなります。
次回は、文字列操作の基本を学びます。
次回予告
次回は「文字列操作の基本を学ぼう」です。
文字列の長さや連結など、文字列を扱う基本を確認します。





![第9回 条件式とtestコマンドを使いこなそう:[ ]と比較演算子の基本 | はじめてのシェルスクリプト](https://pc-fan.net/wp/wp-content/uploads/2026/04/eyecatch_ep09-1-500x273.webp)


