シェルスクリプトでは、値を一時的に保存したり、再利用したりするために「変数」を使います。今回は、変数を定義して値を計算に使う基本的な方法を体験します。プログラミングらしさが一気に増すステップです!
Shellの基礎知識
🟡 Shell の基礎知識(入門編)
📌 「動かす楽しさ」を最短で体感!Shellの第一歩をここから。
├─【Shell入門①】VSCode+WSLでShellを始めよう!
├─【Shell入門②】echoで文字を表示してみよう
├─【Shell入門③】変数を使って計算しよう
├─【Shell入門④】条件分岐(if文)で処理を分けよう
├─【Shell入門⑤】ループ処理(for文)を使ってみよう
├─【Shell入門⑥】関数で処理をまとめてみよう
└─【Shell入門⑦】アンケート集計スクリプトを作ってみよう
🟡 Shell の基礎知識(基礎編)
📌 条件分岐やループなど、実務で通用する基本操作を網羅。
🟡 Shell の基礎知識(実践編)
📌 現場レベルの自動化スクリプトを実装しながら学ぶ実戦形式。
Shellスクリプトにおける変数の基本
Shellスクリプトでも、他のプログラミング言語と同様に「変数」が使えます。変数とは、値を一時的に保存しておくための“入れ物”です。まずはこの基本的な考え方から確認してみましょう。
変数とは?値を一時的に保存する仕組み
変数とは、データを一時的に記憶する名前付きの箱のようなものです。名前をつけて値を保存しておくことで、あとからその値を参照したり変更したりできます。


この「再利用できる」というのが、変数を使う最大のメリットです。
変数を定義して使う基本構文
Shellでは、以下のような書き方で変数を定義します。ポイントは「= の前後にスペースを入れない」ことです。
price=500
そして、変数の中身を使いたいときは、先頭に $ をつけて参照します。
echo "金額は $price 円です"


このように、変数を使えば決まった値をスクリプトの中で柔軟に使い回すことができます。次はこの変数を使って、簡単な計算に挑戦してみましょう。
</h2id="shell-entry-variable1">
実践:変数を使って計算してみよう
変数の基本がわかったら、次はその中に数値を入れて計算してみましょう。Shellでは、特別な書き方で数値計算ができるようになっています。
なお、ここからは「VSCodeでファイルに書いて保存→ターミナルで実行」というスタイルを紹介していますが、初心者の方はターミナルに直接入力してもOKです。少しずつ慣れていきましょう。
作成したら、WSLターミナルで以下のように実行します。
sh calc.sh


数値を変数に入れて足し算してみよう
まずは2つの数字を変数に入れて、足し算の結果を出力する例です。
num1=100
num2=200
sum=$((num1 + num2))
echo "合計は $sum 円です"
出力結果:
合計は 300 円です


Shellでは、ただの =では計算はできません。 $(( )) を使うことで、ちゃんと計算してその結果を変数に代入できます。

VSCodeで実行した場合のイメージ
複数の変数を使って合計・平均を求める
次に、3つの数値を使って合計と平均を計算してみます。少し複雑になりますが、流れは同じです。
a=70
b=80
c=90
total=$((a + b + c))
average=$((total / 3))
echo "合計:$total 点"
echo "平均:$average 点"
出力結果:
合計:240 点
平均:80 点

でも「/」ってちゃんと割り算になるんだ?


VSCodeで実行した場合のイメージ
このように、複数の変数を組み合わせて計算することで、Shellスクリプトが一気に「プログラムらしく」なってきます。変数と計算は今後あらゆる場面で登場するので、ここでしっかり体験しておきましょう。
計算でつまずかないためのポイント
Shellでの計算は見慣れない書き方が多く、初心者がつまずきやすい部分でもあります。ここではエラーを防ぐために、最低限おさえておきたい注意点を解説します。
$(( )) の書き方と注意点
Shellでは、数値計算をするときに $(( )) という特殊な構文を使います。この中には、通常の四則演算(+ - * /)を書くことができます。
result=$((10 + 5))
echo $result
出力結果:
15


なお、次のようにスペースの入れ方を間違えるとエラーになることがあります。
result = $((10 + 5)) ← NG!
「=」の前後にはスペースを入れないのがShellのルールです。
クオーテーションとの相性とエラー対策
Shellでは文字列を扱うときにクオーテーション("や')を使いますが、 $(( )) の中では**クオーテーションを使ってはいけません**。
result=$(("10" + 5)) ← NG!
出力結果:
bash: 10 + 5: syntax error: invalid arithmetic operator


Shellでは構文が非常に厳格なので、「少しの記号ミス」で一発エラーになります。まずはよく使うパターンをコピペでもOKなので、手を動かして感覚をつかんでいきましょう。
変数をマスターして次のステップへ
変数の使い方と計算方法を理解できたら、Shellスクリプトの中でできることが一気に広がります。今後、条件分岐や繰り返し処理と組み合わせることで、より実践的な自動化が可能になります。
条件分岐やループでも変数は大活躍
変数は「値を保持する」という役割だけでなく、if文やfor文といった制御構文の中でも多用されます。たとえば、ある変数の値が特定の条件を満たすかどうかを判断したり、変数の値を使って繰り返し処理を制御したりと、あらゆる場面で活躍します。


このあとの章では、条件分岐とループ処理を通して、変数の活躍シーンを体験していきます。焦らず、一歩ずつ進んでいきましょう。
Shellの基礎知識で変数の仕組みを深堀りしたい方へ
「もっと変数の仕組みを詳しく知りたい」「特殊変数や高度な使い方も気になる」という方は、入門シリーズを終えたあとに下記の基礎記事もぜひ読んでみてください。


このまま入門シリーズを続けて、次は「条件分岐(if文)」に挑戦していきましょう!
▶ 続きはこちら:Shell入門:条件分岐(if文)で処理を分けよう