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

チャレンジ

簡単

countdown.sh という名前のシェルスクリプトを作成し、for ループを使用して 5 から 1 へのカウントダウンを印刷します。

スクリプトは以下のことを行う必要があります:

  1. シェバン行(#!/bin/bash)で始めます
  2. ブレース展開を使用して数字 5 から 1 へイテレートする for ループを使用します
  3. 各数字を自分の行に Countdown: [number] の形式で印刷します

スクリプトを実行可能にし、実行します。出力は以下のようになるはずです:

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

ヒント: 下降範囲を作成するために {5..1} を使用します。ループ内で、ループ変数である i を使用して echo "Countdown: $i" を使用します。

チートシート

for ループを使うと、アイテムのリストをイテレートし、各アイテムに対してアクションを実行できます。

基本構文:

for variable in list; do
    # commands
done

値のリストを繰り返し処理:

for name in Alice Bob Charlie; do
    echo "Hello, $name!"
done

ワイルドカードを使ってファイルを繰り返し処理:

for file in *.txt; do
    echo "Processing $file"
done

ブレース展開を使って数値の範囲を繰り返し処理:

for i in {1..5}; do
    echo "Number: $i"
done

降順の範囲の場合、順序を逆にする:

for i in {5..1}; do
    echo "Number: $i"
done

自分で試してみよう

ターミナル
quiz icon腕試し

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

基礎のすべてのレッスン