Bash 範囲

Fumbani Banda 2023年1月30日
  1. Bash で for ループを使って範囲を取得する
  2. Bash で範囲を取得するために 3つの式を含む for ループを使用する
  3. Bash で while ループを使って範囲を取得する
  4. Bash で eval を使って範囲を取得する
  5. Bash で seq を使って範囲を取得する
Bash 範囲

このチュートリアルでは、for ループと while ループを使用して bash 内の整数の範囲を反復処理する方法を示します。

Bash で for ループを使って範囲を取得する

以下の bash スクリプトは、中括弧を拡張した for ループを使用して、数値の範囲をループします。中括弧内の数字は順番に増加します。

#!/bin/bash

printf "Print Numbers from 0 to 5\n"
for x in {0..5}
do
printf "number:$x\n"
done

出力:

Print Numbers from 0 to 5
number:0
number:1
number:2
number:3
number:4
number:5

Bash で範囲を取得するために 3つの式を含む for ループを使用する

このスクリプトは、C 言語のように 3つの式を持つ for ループを使用します。ここで、expr1 は初期化、expr2 は条件、expr3 はインクリメントです。

この場合、x0 に初期化され、x5 以下であるかどうかがテストされ、最後に x1 ずつインクリメントされます。

#!/bin/bash

max=5
printf "Print Numbers from 0 to $max\n"
for ((x=0;x<=max;x++)); do
    printf "number: $x\n"
done

出力:

Print Numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5

Bash で while ループを使って範囲を取得する

これは、算術値の比較に使用されるバイナリ比較演算子 -le を使用した while ループを使用します。

この場合、while ループは、x が変数 $max 以下である限り実行されます。

#!/bin/bash

x=0
max=5
printf "Print numbers from $x to $max\n"
while [ $x -le $max ]; do
    printf "number: $x\n"
    x=$(($x+1))
done

出力:

Print numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5

Bash で eval を使って範囲を取得する

eval は、引数をシェルコマンドとして実行するために使用される bash コマンドです。以下のスクリプトでは、中括弧は 1 の増分で 0 から $max までの数値を生成し、for ループはこれらの数値を繰り返し、printf コマンドはそれらを表示します。

#!/bin/bash

max=4

printf "Print Numbers from 0 to $max\n"
for x in `eval echo {0..$max}`
do
printf "number: $x\n"
done

出力:

Print Numbers from 0 to 4
number: 0
number: 1
number: 2
number: 3
number: 4

Bash で seq を使って範囲を取得する

seq は、start から finish までの数値を増分ステップで生成するために使用される bash コマンドです。

この場合、seqx から $max まで 1 の増分で数値を生成します。for ループはこれらの数値を繰り返し処理し、printf コマンドを使用してそれらを表示します。

x=0
max=5

printf "Print numbers from $x to $max\n"
for x in $(seq $x $max)
do
printf "number: $x\n"
done

出力:

Print numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5
著者: Fumbani Banda
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

関連記事 - Bash Loop