シェルスクリプトでは、同じ処理を繰り返し実行するために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までの数字が表示されます。
範囲を指定してループ処理を行いたい場合、seqコマンドを使用することが一般的です。seqは指定した範囲の連続した数字を生成するコマンドです。
以下は1から10までの数字を表示する例です。
#!/bin/bash
for i in $(seq 1 10)
do
echo "Number: $i"
done
このスクリプトでは、「seq 1 10」が1から10までの数字を生成し、それをfor文で順に処理します。
ファイルやディレクトリの一覧を処理する場合も、for文が役立ちます。例えば、ディレクトリ内の全ファイルに対して何らかの操作を行いたいときに使用します。
以下は現在のディレクトリ内の全ファイルを表示する例です。
#!/bin/bash
for file in *
do
echo "File: $file"
done
このスクリプトでは、*は現在のディレクトリ内の全ファイルとディレクトリを対象にしています。
配列を使ってループ処理を行うこともできます。配列は、複数の値を一度に格納できる便利なデータ構造です。
#!/bin/bash
# 配列の定義
fruits=("apple" "banana" "cherry")
# 配列の要素をループ処理
for fruit in "${fruits[@]}"
do
echo "Fruit: $fruit"
done
このスクリプトでは、「${fruits[@natsukawa
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文は、様々なリストや範囲を使って繰り返し処理を行うための強力なツールです。
基本的な使い方から、配列やネストされたループまで、多くのシナリオで活用することができます。ぜひ、実際のスクリプト作成に役立ててください。