Categories: shellscript

シェルスクリプトのfor文の使い方を解説

シェルスクリプトでは、同じ処理を繰り返し実行するためにfor文を使います。

for文を使うことで、リストや範囲の値を使って簡潔にループ処理を実装できます。

この記事では、シェルスクリプトのfor文の基本的な使い方から、応用的な使い方までを解説します。

基本的なfor文の構文

シェルスクリプトの基本的なfor文の構文は以下のようになります。ここで、変数にはリストの各要素が順に代入され、コマンドがその都度実行されます。

for 変数 in リスト
do
    コマンド
done

以下はスクリプトの例です。

#!/bin/bash

for i in 1 2 3 4 5
do
    echo "Number: $i"
done

このスクリプトを実行すると、1から5までの数字が表示されます。

範囲指定でのfor文

範囲を指定してループ処理を行いたい場合、seqコマンドを使用することが一般的です。seqは指定した範囲の連続した数字を生成するコマンドです。

以下は1から10までの数字を表示する例です。

#!/bin/bash

for i in $(seq 1 10)
do
    echo "Number: $i"
done

このスクリプトでは、「seq 1 10」が1から10までの数字を生成し、それをfor文で順に処理します。

ファイルリストを使ったfor文

ファイルやディレクトリの一覧を処理する場合も、for文が役立ちます。例えば、ディレクトリ内の全ファイルに対して何らかの操作を行いたいときに使用します。

以下は現在のディレクトリ内の全ファイルを表示する例です。

#!/bin/bash

for file in *
do
    echo "File: $file"
done

このスクリプトでは、*は現在のディレクトリ内の全ファイルとディレクトリを対象にしています。

for文と配列

配列を使ってループ処理を行うこともできます。配列は、複数の値を一度に格納できる便利なデータ構造です。

#!/bin/bash

# 配列の定義
fruits=("apple" "banana" "cherry")

# 配列の要素をループ処理
for fruit in "${fruits[@]}"
do
    echo "Fruit: $fruit"
done

このスクリプトでは、「${fruits[@natsukawa

ネストされたfor文

for文をネストして、複雑な処理を行うことも可能です。例えば、2次元配列のようなデータ構造を処理する場合に役立ちます。

以下は1から3までの数字と、AからCまでの文字を組み合わせて表示する例です。

#!/bin/bash

for num in 1 2 3
do
    for letter in A B C
    do
        echo "Number: $num, Letter: $letter"
    done
done

まとめ

シェルスクリプトのfor文は、様々なリストや範囲を使って繰り返し処理を行うための強力なツールです。

基本的な使い方から、配列やネストされたループまで、多くのシナリオで活用することができます。ぜひ、実際のスクリプト作成に役立ててください。

Haruoka