【Linux入門】while文による繰り返し処理をわかりやすく解説!

Linuxのシェルスクリプトには他のプログラミング言語同様while文による繰り返し処理が可能です。

ここではシェルスクリプトで使用するwhile文について以下の内容で解説していきます。

・while文とは
・while文の使い方
・while文でファイルの内容を読みこむ
・while文での無限ループ

while文はシェルスクリプトの処理の中でもif文同様に使用する頻度が高い構文です。

この記事ではwhile文ついてわかりやすく解説していますので、ぜひ使い方を覚えておきましょう!

while文とは

while文指定した条件式が真の場合にのみ繰り返し処理を実行し、条件式が偽になった場合は繰り返しのループ処理が終了します。

そのため、

  • ある程度繰り返し回数が決まっている場合はfor文
  • 条件が偽になるまで繰り返したい場合はwhile文

の処理をそれぞれ使うのが一般的です。

シェルスクリプトでのwhile文は以下のように記述します。

while 条件式
do
  繰り返し所為
done

条件式にはif文での書式を指定することができます。

if文については以下の記事で詳しく解説しています!

while文の基本的な使い方

ここではwhile文の基本的な使い方について解説します。

while文で指定回数分繰り返したい場合、たとえば10回処理を繰り返したい場合は以下のように記述します。

#!/usr/bin/bash

i=0
while [ $i -ne 10 ]
do
  echo $i回目
  i=`expr 1 + $i`
done

実行結果:

0回目
1回目
2回目
3回目
4回目
5回目
6回目
7回目
8回目
9回目

このサンプルでは変数iを0で初期化し、変数iが10になった時点でループ処理を抜けています。

do~doneの処理の中ではexprで変数iの値をインクリメントして1ずつ加算しています。

また、以下の例ではコンソールから入力した文字列が”samurai”である限り処理が実行されます。

#!/usr/bin/bash

read input
while [ $input = samurai ]
do
  echo engineer
  read input
done

実行結果:
while_image01

while文の応用的な使い方

ファイルの内容を一行ずつ読み込む

while文でファイルの内容を一行ずつ読み込む方法は簡単です。

ここでは以下のファイルを使用して一行ずつ読み込んでみます。
————————————
【fruits.txt】
apple
orange
melon
banana
pineapple
————————————

#!/usr/bin/bash

while read line
do
  echo $line
done < fruits.txt

実行結果:

apple
orange
melon
banana
pineapple

ファイルの内容が一行ずつ読み込めました。

ファイルを読み込む場合はwhile文の式に「read line」を指定します。

また、doneのあとに「> ファイル名」の形式で読み込むファイルを指定します。

無限ループ

while文で無限ループを実施するには条件式に「true」を指定するだけで可能です。

以下ではsleep処理で1秒間隔で無限ループ処理をしています。

#!/usr/bin/bash

while true
do
  echo LOOP
  sleep 1
done

実行結果:

LOOP
LOOP
LOOP
…

無限ループを終了するにはショートカットキー「ctrl」+「c」で可能です。

for文による繰り返し処理

while文が条件式が偽になるまで処理を繰り返すのに対して、for文では指定した回数分処理を繰り返したい場合に使用します。

for文については以下の記事で詳しく解説しています!

まとめ

ここでは、Linuxのシェルスクリプトでwhile文による繰り返し処理について解説しました。

  • while文とは
  • while文の基本的な使い方
  • while文の応用的な使い方
  • for文について

シェルスクリプトではwhile文を使用して繰り返し処理を行う機会は多いので使い方についてはよく理解しておきましょう。

もし、while文の使い方を忘れてしまったら、この記事を思い出してくださいね!

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

侍ブログ編集部

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。
サービスページはこちら
ツイッターはこちら
フェイスブックはこちら

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー