0Pricing
Linux Command Line & Bash Scripting Mastery · レッスン

ループ構文(for、while)

「for」ループと「while」ループを使い、リスト、ファイル、条件を繰り返し処理して定型作業を自動化します。

「ループ構文(for、while)」はCoddyKit上の無料Linux Command Line & Bash Scripting Masteryレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Command Line & Bash Scripting Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。

ループでタスクを自動化する

ようこそ。このレッスンでは、Bashスクリプトにおけるループについて詳しく学びます。ループは、スクリプトで一連のコマンドを複数回繰り返すための強力な機能です。

ループは、繰り返し作業の自動化、データのリスト処理、または特定の条件が満たされるまでの処理の実行に欠かせません。ここでは主に、forループとwhileループの2種類を扱います。

`for`ループ:項目のリスト

forループは、固定された項目のリストを反復処理するのに適しています。このリストには、単語、ファイル名、数値など、定義可能なものを並べられます。

基本的な構文は次のとおりです。

  • for variable in item1 item2 ...; do
  • commands to repeat
  • done

リスト内の各項目がvariableに代入され、そのたびにコマンドが実行されます。

例:リストの反復処理

果物のリストを反復処理して、forループがどのように動作するか見てみましょう。この例を実行して、それぞれの果物がどのように処理されるか確認してください。

#!/bin/bash

echo "My favorite fruits:"
for fruit in Apple Banana Orange;
do
  echo "$fruit is delicious!"
done

'for'ループ:数列

forループを使うと、数列を簡単に生成して反復処理することもできます。これは、カウントやインデックスによる項目の処理が必要なタスクで非常に便利です。

ブレース展開 {start..end}を使用して、数値の数列を作成できます。

  • for i in {1..5}; do ... done

別の方法として、seqコマンドを使うと、ステップ幅など、より多くのオプションを指定して数列を生成できます。

  • for i in $(seq 1 2 10); do ... done

例:'for'でカウントする

ブレース展開を使って1から3までカウントする方法を見てみましょう。これは、単純な数値ループでよく使われるパターンです。

#!/bin/bash

echo "Counting up:"
for i in {1..3};
do
  echo "Number: $i"
done

'while'ループ:条件付きの繰り返し

whileループは、指定した条件がtrueである間、コマンドのブロックを繰り返し実行します。ループが何回必要になるかを事前に把握できない場合に適しています。

基本構文は次のとおりです。

  • while [ condition ]; do
  • commands to repeat
  • done

conditionは各反復の前に評価されます。trueの場合はコマンドが実行され、falseの場合はループが終了します。

例:単純な'while'カウンター

この例では、1から3までカウントするwhileループを示します。条件を最終的にfalseにするため、ループ内でcount変数の値を増やしている点に注目してください。

#!/bin/bash

count=1
echo "Counting with while loop:"
while [ $count -le 3 ];
do
  echo "Current count: $count"
  count=$((count + 1))
done

'while'ループ:ファイルを1行ずつ読み取る

whileループの非常に一般的で強力な用途は、ファイルを1行ずつ読み取って処理することです。これは、ログファイル、設定ファイル、その他のテキストデータを解析する際に不可欠です。

このパターンは、次のようになります。

  • while IFS= read -r line; do
  • commands to process $line
  • done < filename.txt

IFS= read -rは、空白やバックスラッシュによる問題を防げる堅牢な行の読み取り方法です。

例:ファイルを処理する

一時ファイルを作成し、whileループを使ってその内容を1行ずつ読み取って表示してみましょう。これは、ファイル処理の実用的な応用例です。

#!/bin/bash

# Create a temporary file for demonstration
echo "First line of data" > temp_data.txt
echo "Second line of data" >> temp_data.txt
echo "Third line of data" >> temp_data.txt

echo "\nReading from temp_data.txt:"
while IFS= read -r line;
do
  echo "Processed: $line"
done < temp_data.txt

# Clean up the temporary file
rm temp_data.txt

ループの種類の選択

forループとwhileループの両方について学びました。それぞれに長所があり、適したループはタスクによって異なります。

次の状況を考えてみましょう。特定のディレクトリにある各ファイル名を処理する必要があります。

まとめ:自動化のためのループ

Bashのループ構文を一通り学習できました。

  • forループは、既知の有限な項目リストや数列を反復処理するのに適しています。
  • whileループは、特定の条件がtrueである間コマンドを繰り返す必要がある場合に適しており、カウントやファイルの1行ずつの読み取りによく使われます。

これらのループを習得することは、強力で自動化されたBashスクリプトを書くための基本です。練習を続けて、スクリプト作成のスキルを高めていきましょう。

よくある質問

「ループ構文(for、while)」レッスンは無料ですか?

はい。「ループ構文(for、while)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Command Line & Bash Scripting Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。

「ループ構文(for、while)」で何を学びますか?

「for」ループと「while」ループを使い、リスト、ファイル、条件を繰り返し処理して定型作業を自動化します。 ブラウザで直接実行するハンズオンコードでLinux Command Line & Bash Scripting Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Linux Command Line & Bash Scripting Masteryを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLinux Command Line & Bash Scripting Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「ループ構文(for、while)」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLinux Command Line & Bash Scripting Masteryレッスンでコードを書いて実行できますか?

はい。すべてのLinux Command Line & Bash Scripting Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ループ構文(for、while)
  2. Bashスクリプトの関数
  3. スクリプトの引数とオプション($@、$#、getopts)
  4. case文とパターンマッチング
← Linux Command Line & Bash Scripting Masteryに戻る