Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

Bashのforループとwhileループの使い方まとめ【実例付き】

他の多くのスクリプト言語と同様に、Bashでもループ処理がサポートされています。

ループは、同じ作業を何度も繰り返す場合に非常に便利な仕組みです。Bashスクリプトでは、主に「forループ」と「whileループ」の2つを活用できます。本記事では、それぞれの基本構文と実用的なサンプルコードをわかりやすく紹介します。

Bashのforループ

forループの基本構文は以下の通りです。

for VARIABLE in PARAM1 PARAM2 PARAM3
do
  // forループの処理範囲
done

forループは、指定された各パラメータに対して順番に処理を実行します。パラメータには、個々の数値、数値の範囲(レンジ)、文字列など、さまざまなものを指定できます。

forループの基本例

まずは、forループを使って1から5までの数字を出力するシンプルな例を見てみましょう。

#!/bin/bash

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

出力結果:

1
2
3
4
5

数値の範囲を指定してループする

波括弧を使った {開始..終了} の形式を利用すると、数値の範囲を簡単に指定できます。

例:

for i in {1..5}
do
   echo "$i"
done

出力結果:

1
2
3
4
5

文字列を順番に処理する

forループは、文字列のリストを扱うこともできます。曜日名を順に出力する例です。

#!/bin/bash

for day in MON TUE WED THU FRI SAT SUN
do
   echo "$day"
done

出力結果:

MON
TUE
WED
THU
FRI
SAT
SUN

C言語スタイルのforループ

Bashでは、C言語のような二重括弧 (( )) を使った構文でforループを記述することも可能です。

例:

#!/bin/bash

for ((i=1; i<=5; i++))
do
  echo "$i"
done

出力結果:

1
2
3
4
5

カレントディレクトリのファイル一覧を表示する

forループと ls コマンドを組み合わせれば、カレントディレクトリ内の全ファイルの一覧を表示できます。

#!/bin/bash

for fname in ./*
do
  ls -l $fname
done

Bashのwhileループ

Bashはwhileループもサポートしています。whileループは、指定した条件が真(true)である限り、一連の命令を繰り返し実行します。

whileループの基本構文は以下の通りです。

while [条件式]
do
  // 実行したい命令
done

条件式は、命令を実行する前に毎回評価されます。そのため、ループ内で条件に関わる変数を更新しないと、条件が真のまま変化せず、無限ループに陥ってしまうので注意が必要です。

whileループの基本例

次の例は、1から5までの数字を出力するシンプルなwhileループです。変数numが5より大きくなると、ループは終了します。

#!/bin/bash

num=1
while [ $num -le 5 ]
do
   echo "$num"
   let num++
done

ここで使われている -le は「〜以下(less than or equal)」を意味する比較演算子で、let num++ によって変数numの値を1ずつ増やしています。

C言語スタイルのwhileループ

forループと同様に、whileループもC言語風の二重括弧構文で書くことができます。

例:

#!/bin/bash

num=1
while((num <= 5))
do
   echo $num
   let num++
done

このように、Bashのループにはいくつかの書き方があります。決まったリストや範囲の処理にはforループ、条件に応じた反復処理にはwhileループというように、用途に応じて使い分けることで、より効率的で読みやすいシェルスクリプトを作成できます。

  1. Bash変数チュートリアル – 基本からグローバル変数・ローカル変数まで学べる6つの実用例

    Bash変数は、プログラムの実行期間中に必要となる情報を一時的に保存しておくための仕組みです。本記事はBashチュートリアルシリーズの一篇で、他のプログラミング言語と同様にBashでも変数を利用できることを踏まえ、基本的な使い方からグローバル変数とローカル変数の違いまでを、6つの実用的なサンプルを通じて解説します。 Bash変数の基本構文 変数の定義は非常にシンプルで、次の書式に従います。 VARNAME=VALUE 注意: 変数へ代入する際は、「=」記号の前後にスペースを入れてはいけません。「VAR=VALUE」のように書けば、シェルは「=」を代入記号として認識し、この行を変数への代入とし

  2. 数式だけでExcelにFORループを作る方法|3つの実例でわかりやすく解説

    Excel VBAは使いたくないけれど、数式だけでFORループのような繰り返し処理を実現したい——そう考えたことはありませんか?この記事では、数式のみを使ってFORループと同じ動作を実現する方法を具体的に紹介します。Excel VBAでコードが書ける方は自由自在です。しかし、VBAを書いたことがない方や、ブックにマクロコードを含めたくない方は、シンプルなループ処理ひとつでも工夫が必要になります。そんなときこそ、発想の転換が役立ちます。作業用ファイルのダウンロード以下のリンクから、この記事で使用する作業用ファイルをダウンロードできます。数式でExcelにFORループを作る3つの例ここでは、数式を