
繰り返し処理を自動化する「for文」は、Shellスクリプトでも非常によく使われます。たとえば「複数のファイルに順番に処理をする」「1〜5の数字を繰り返し表示する」など、作業の効率を大きく向上させてくれる構文です。今回はfor文の基本構文と、シンプルな実行例を体験しながら学んでいきましょう。
Shellの基礎知識
🟡 Shell の基礎知識(入門編)
📌 「動かす楽しさ」を最短で体感!Shellの第一歩をここから。
├─【Shell入門①】VSCode+WSLでShellを始めよう!
├─【Shell入門②】echoで文字を表示してみよう
├─【Shell入門③】変数を使って計算しよう
├─【Shell入門④】条件分岐(if文)で処理を分けよう
├─【Shell入門⑤】ループ処理(for文)を使ってみよう
├─【Shell入門⑥】関数で処理をまとめてみよう
└─【Shell入門⑦】アンケート集計スクリプトを作ってみよう
🟡 Shell の基礎知識(基礎編)
📌 条件分岐やループなど、実務で通用する基本操作を網羅。
🟡 Shell の基礎知識(実践編)
📌 現場レベルの自動化スクリプトを実装しながら学ぶ実戦形式。
for文とは?くり返し処理の基本構文
何度も同じ処理を繰り返したいときに便利なのが、Shellスクリプトの「for文」です。「1〜5まで繰り返す」「複数の名前を順番に表示する」といった処理が、たった数行で書けるようになります。
なお、for文の練習はターミナルに直接入力しても、VSCodeでファイルを作って実行しても問題ありません。自分に合った方法で気軽に試してみましょう。
初めてのfor文 ― 数字を1〜5まで表示してみよう
まずは基本のfor文構文を使って、1から5までの数字を順番に表示してみましょう。
for i in 1 2 3 4 5; do
echo "数字は $i です"
done
出力結果:
数字は 1 です
数字は 2 です
数字は 3 です
数字は 4 です
数字は 5 です


この「for i in 値...」の部分で、繰り返し対象の値を指定できます。
range風の展開や文字列の繰り返しもできる?
for文は数字だけでなく、文字列やファイル名など、リスト化できるものであれば何でも繰り返し処理が可能です。
for name in BePro Rookie Hello; do
echo "$name を処理中"
done
出力結果:
BePro を処理中
Rookie を処理中
Hello を処理中


このように、for文は数値だけに限らず、さまざまな値を対象に繰り返し処理ができる構文です。次のセクションでは、実際に応用的な使い方にチャレンジしてみましょう。
実践:for文でメッセージを繰り返そう
ここからは、for文を使って実際に複数回の出力を行う練習をしてみましょう。同じ処理を何度も書かなくても、ループによって自動で繰り返しが行えるようになります。
ループ内のprintで複数回の出力
まずは「同じメッセージを5回表示する」という処理をfor文で実装してみましょう。
ここで使っている $i は、for文の中で自動的に使われる「ループ変数」です。毎回異なる値を一時的に保持し、繰り返し処理で活用されます。
for i in 1 2 3 4 5; do
echo "Hello, Shell!"
done
出力結果:
Hello, Shell!
Hello, Shell!
Hello, Shell!
Hello, Shell!
Hello, Shell!


このように、echoなどのコマンドをループ内に書けば、何回でも同じ処理を繰り返すことができます。
変数と組み合わせて動的に表示
次は、変数を使って「何回目の出力か」を動的に表示する方法を試してみましょう。
for i in 1 2 3; do
echo "$i 回目の処理を実行中…"
done
出力結果:
1 回目の処理を実行中…
2 回目の処理を実行中…
3 回目の処理を実行中…


なお、 i は「iterator(繰り返すもの)」の頭文字として使われるのが慣例ですが、 item や name など、任意の変数名でも構いません。
こうして、for文の中で変数を活用すると「毎回異なる値を使った処理」ができるようになります。次のセクションでは、つまずきやすいポイントとエラーの対処について解説していきます。
for文でつまずかないためのポイント
for文は便利ですが、書き方に少しクセがあるため、初心者がつまずきやすいポイントもあります。ここでは代表的な注意点を確認しておきましょう。
スペースとセミコロンの使い方に注意
Shellスクリプトでは、文法的にスペースやセミコロンの位置がとても重要です。for文も例外ではありません。
たとえば以下は正しい書き方です:
for i in 1 2 3; do
echo $i
done
一方、以下のようにスペースやセミコロンが抜けていると、エラーになる場合があります:
for i in 1 2 3do
echo $i
done


基本の構文は for 変数 in 値1 値2 ... ; do のように、セミコロンか改行が必要な点に注意してください。
配列・文字列との相性と制限事項
Shellのfor文はシンプルですが、扱えるデータには多少制限があります。たとえば、スペースを含んだ文字列を1つの要素として扱いたい場合、クオートで囲まないと意図通りに動作しません。
例:
for name in "Be Pro" "Rookie Dev"; do
echo "$name"
done
出力結果:
Be Pro
Rookie Dev


また、Bashの配列のような高度な使い方は、POSIX準拠のシェルではそのまま使えないこともあります。入門の段階では、まずはシンプルなリストでの繰り返しに慣れていきましょう。
次のステップにつなげよう!
for文の基本構文をマスターすれば、単純な繰り返しだけでなく、条件分岐や関数と組み合わせたより実践的なスクリプト作成にもつながっていきます。
条件分岐と組み合わせることで実用度アップ
たとえば、繰り返しの中で「ある条件を満たす場合だけ処理を行う」といった分岐を組み込めば、より柔軟な処理が可能になります。
for num in 1 2 3 4 5; do
if [ "$num" -eq 3 ]; then
echo "3だけ特別な処理!"
fi
done


このように、条件分岐と組み合わせれば、より柔軟で実用的な処理を記述できるようになります。
Shellの基礎知識でfor文の応用例を学びたい方へ
今回の記事ではfor文の基本と簡単な応用に触れましたが、「もっと実践的な使い方」や「業務スクリプトでの使い方」を深く学びたい方には、下記の関連記事もおすすめです。


次回は、繰り返しと相性の良い「関数」を使ったスクリプト作成に挑戦してみましょう!
▶ 続きはこちら:Shell入門:関数で処理をまとめてみよう