Menu
Coddy logo textTech

forループ

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

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

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

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

このスクリプトは、list 内の各名前に対してあいさつを出力します。変数 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までの数字を出力します。forループを使うと、反復的なタスクをわずか数行のコードにできるため、スクリプトの効率が上がり、保守も容易になります。

challenge icon

チャレンジ

簡単

countdown.sh という名前のシェルスクリプトを作成し、for ループを使って 5 から 1 までのカウントダウンを出力してください。

スクリプトでは、次のことを行ってください。

  1. シバン行(#!/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プレイグラウンド