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

このスクリプトは、リスト内の名前ごとに挨拶を出力します。変数 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

チャレンジ

簡単

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

スクリプトは以下の仕様を満たす必要があります:

  1. シバン行(#!/bin/bash)から開始する
  2. ブレース展開を使用したforループで、数字の5から1まで順番にループ処理する
  3. 各数字を Countdown: [number] の形式でそれぞれの行に出力する

スクリプトを実行可能にして実行してください。出力は以下のようになります:

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

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

自分で試してみよう

ターミナル
quiz icon腕試し

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

基礎のすべてのレッスン