Linuxのシェルスクリプトには他のプログラミング言語同様for文による繰り返し処理が可能です。
ここではシェルスクリプトで使用するfor文について以下の内容で解説していきます。
・for文とは
・for文で数値を指定して繰り返す
・for文で文字列を指定して繰り返す
・seqで指定回数分繰り返す
・ファイルを繰り返し読み込む
for文はシェルスクリプトの処理の中でもif文同様に使用する頻度が高い構文です。
この記事ではfor文ついてわかりやすく解説していますので、ぜひ使い方を覚えておきましょう!
for文とは
for文は指定した回数分同じ処理を繰り返したいときに使用します。
たとえば、100回同じ処理を繰り返したい場合や、指定した値と一致するまで処理を繰り返したい場合などにfor文を使用します。
シェルスクリプトでのfor文の書式は以下となります
for 変数 in リスト do 繰り返し処理 done
繰り返し処理を行うには、リストに繰り返す値を複数指定しておきます。
リストに指定された値は1回の処理ごとに変数に代入され、do~doneによる処理で繰り返し処理が実行されます。
for文の基本的な使い方
ここではfor文の基本的な使い方について見ていきましょう。
数値を繰り返す
まずは数値を指定して繰り返す処理を解説します。
以下の例では0から9まで処理を10回繰り返すサンプルです。
#!/usr/bin/bash for i in 0 1 2 3 4 5 6 7 8 9 do echo $i done
実行結果:
0 1 2 3 4 5 6 7 8 9
このサンプルではリストに0から9までの値を指定し、変数iに1回の処理ごとにリストの値が代入されています。
do~doneによる処理ではechoによる変数iの値を出力しています。
変数iは繰り返し処理ごとに0から9までの値が代入されるので、echoによる出力も0から順番に表示されます。
文字列を繰り返す
続いてリストに指定した文字列で繰り返し処理を実行する方法です。
#!/usr/bin/bash for i in apple orange melon banana painapple do echo $i done
実行結果:
apple orange melon banana painapple
数値同様文字列も繰り返し取得できていることがわかりますね!
ちなみにfor文のリストには変数を指定することもできます。
#!/usr/bin/bash STR1=apple STR2=orange STR3=malon STR4=banana STR5=painapple for i in $STR1 $STR2 $STR3 $STR4 $STR5 do echo $i done
実行結果:
apple orange melon banana painapple
変数を指定しても同様の結果になることがわかりますね!
for文の応用的な使い方
seqで回数を指定する
seqを指定すると指定した回数分処理を繰り返すことができます。
たとえば、10回処理を繰り返したい場合は以下のように記述します。
#!/usr/bin/bash for i in `seq 10` do echo $i回目 done
実行結果:
1回目 2回目 3回目 4回目 5回目 6回目 7回目 8回目 9回目 10回目
処理が10回繰り返されました!
ファイルを繰り返し読み込む
for文による繰り返し処理ではリストにコマンドを指定することもできます。
以下の例では「ls」コマンドでファイル名に”fruits*.txt”が含まれるファイルをリストに指定し、do~doneで取得したファイル名とファイルの中身を表示しています。
#!/usr/bin/bash for fruits in `ls fruits*.txt` do echo $fruits cat $fruits done
実行結果:
fruits01.txt apple fruits02.txt orange fruits03.txt melon
while文での繰り返し処理
for文と似た繰り返し処理としてはwhile文があります。
for文はリストに指定した値分を繰り返すのに対して、while文は条件式が偽になるまで繰り返し処理を行います。
while文については以下で詳しく解説していますので合わせて参考にしてください。
まとめ
ここでは、Linuxのシェルスクリプトでfor文による繰り返し処理について解説しました。
- for文とは
- for文の基本的な使い方
- for文の応用的な使い方
- while文について
シェルスクリプトではfor文を使用して同じ処理を繰り返す機会は多いので使い方についてはよく理解しておきましょう。
もし、for文の使い方を忘れてしまったら、この記事を思い出してくださいね!