Menu
CoddyTech

forループ

CoddyのTerminalジャーニー「基礎」セクションの一部。レッスン 71/82。

アクションを何度も繰り返す必要がある場合があります。同じコマンドを何度も書く代わりに、forループを使って項目のリストを反復処理し、それぞれに対してアクションを実行できます。

Bashのforループの基本的な構造は次のとおりです。

#!/bin/bash
for name in Alice Bob Charlie; do
    echo "Hello, $name!"
done

このスクリプトは、リスト内の各名前に対してあいさつを出力します。変数 name には順番に各値が入ります。最初は "Alice"、次に "Bob"、その後 "Charlie" です。do キーワードはループ本体の開始を示し、done はループ本体を終了します。

forループは、ワイルドカードと組み合わせると特に強力です。ディレクトリ内のすべてのファイルをループ処理できます。

#!/bin/bash
for file in *.txt; do
    echo "Processing $file"
done

これは現在のディレクトリにあるすべての .txt ファイルを順に処理します。各反復では、file 変数に現在のファイル名が格納されるため、各ファイルに対して処理を自動的に実行できます。

ブレース展開を使って、数値の範囲をループ処理することもできます。

#!/bin/bash
for i in {1..5}; do
    echo "Number: $i"
done

これは1から5までの数値を出力します。ループを使うと、繰り返しの作業をわずか数行のコードで実行できるため、スクリプトの効率が上がり、保守もしやすくなります。

challenge icon

チャレンジ

簡単

5から1までのカウントダウンを表示する、countdown.shというシェルスクリプトを作成してください。

スクリプトは次の要件を満たす必要があります。

  1. shebang行(#!/bin/bash)から始める
  2. ブレース展開を使ったforループで、5から1までの数値を順に処理する
  3. 各数値をそれぞれ1行に、次の形式で表示する: Countdown: [number]

スクリプトに実行権限を付与して実行してください。出力は次のようになります。

Countdown: 5
Countdown: 4
Countdown: 3
Countdown: 2
Countdown: 1

ヒント: {5..1}を使って降順の範囲を作成してください。ループ内では、ループ変数としてiを使い、echo "Countdown: $i"を実行してください。

自分で試してみよう

ターミナル
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Terminalプレイグラウンド