本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
第11回 for文で繰り返し処理をしてみよう:in・do・doneの基本 | はじめてのシェルスクリプト

はじめに
この連載では、macOS のターミナルで sh を使いながら、シェルスクリプトの基本を順番に学んでいきます。
ここまでの回では、変数・クォート・引数・入力処理・条件分岐と、シェルスクリプトを書くための基本要素を順番に学んできました。これらを使えば「一定の条件で処理を切り替える」ことができるようになりましたね。
しかし、「同じ処理を10回繰り返す」「複数のファイルひとつひとつに同じ操作をする」といった場合、同じコードを何度もコピーするのは非効率ですし、ミスのもとになります。そこで役立つのが「繰り返し処理(ループ)」です。
第11回では、複数の値を順番に処理するための for 文を学びます。in do done という構造を理解すれば、作業の自動化がぐっと現実的になります。ループを使いこなせると、シェルスクリプトの強みが最大限に引き出せますよ。
この回で学ぶこと
for文とは何かforindodoneの形- 値を順番に処理する方法
- 複数の文字列を繰り返す例
- ファイル名の列挙の基本
- 反復処理の考え方
- 初学者がつまずきやすい書き方
for 文とは何か
同じ形の処理を繰り返す
for 文は、複数の値に対して同じ処理を順番に行うための構文です。
たとえば、3つの単語を1つずつ表示したいときに使えます。
基本の形
for 文の基本形は次のようになります。
for item in apple banana orange
do
echo "$item"
donefor のあとに変数名を書き、in のあとに順番に処理したい値を書きます。
do から done までが、繰り返して実行される部分です。
サンプルコード
for_sample.sh に次の内容を保存します。
#!/bin/sh
for fruit in apple banana orange
do
echo "$fruit"
done実行手順
1. ファイルを作成して保存する
エディタで for_sample.sh という名前のファイルを作成し、次の内容を保存します。
#!/bin/sh
for fruit in apple banana orange
do
echo "$fruit"
done2. スクリプトを実行する
次のコマンドを実行します。
sh for_sample.sh実行結果は次のようになります。
apple
banana
orange3. 値を追加して試す
grape を追加して、もう一度実行してみてください。
#!/bin/sh
for fruit in apple banana orange grape
do
echo "$fruit"
done追加した値も順番に表示されます。
コードの読み方
for fruit in apple banana orange
fruit という変数に、apple、banana、orange を順番に入れます。
do
ここから繰り返し処理が始まります。
echo “$fruit”
現在の fruit の値を表示します。
1回目は apple、2回目は banana、3回目は orange が入ります。
done
繰り返し処理の終わりを表します。
ファイル名の列挙にも使える
for 文は、文字列だけでなくファイル名の列挙にも使えます。
たとえば、次のように書けます。
for file in *.txt
do
echo "$file"
doneこの場合、現在のディレクトリにある .txt ファイルを順番に表示できます。
まずは「複数の値を順番に取り出して同じ処理をする」という理解で十分です。
初学者がつまずきやすい点
done を書き忘れる
for 文は、最後に done が必要です。
これがないと構文が正しく終わりません。
do の位置を崩す
do は繰り返し処理の始まりです。
for 文の形をそのまま覚えると書きやすくなります。
変数名に $ を付けてしまう
for fruit in ... のように、変数を定義するときは $ を付けません。
使うときだけ "$fruit" のように $ を付けます。
よくあるエラー
parse error near done
for 文の形が崩れている可能性があります。
for in do done の並びを確認してください。
値が思った通りに表示されない
echo "$fruit" のように、正しい変数名を使っているか確認してください。
ファイル名が表示されない
*.txt に一致するファイルが現在のディレクトリにあるか確認してください。
pwd や ls で現在地とファイル一覧を見ると分かりやすいです。
練習用コード
次の内容で colors.sh を作成して実行してみてください。
#!/bin/sh
for color in red blue green
do
echo "Color: $color"
done色の名前を追加したり、表示する文字列を変えたりして、結果がどう変わるか確認してください。
この回で理解しておくこと
for文は複数の値を順番に処理するために使うforindodoneの形で書く- 繰り返しごとに変数へ1つずつ値が入る
- 同じ処理を何度も書かずにまとめられる
- 文字列だけでなくファイル名の列挙にも使える
doneの書き忘れや変数の書き方に注意が必要である
まとめ
今回は、for 文を使って複数の値を順番に処理する基本を確認しました。
繰り返し処理を使えるようになると、同じ形の作業をまとめて書けるようになります。
次回は、条件付きで繰り返す while 文を学びます。
次回予告
次回は「while文で条件付きの繰り返しをしてみよう」です。
条件が成り立つ間だけ処理を繰り返す基本を確認します。




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



