Bash 範囲
Fumbani Banda
2023年1月30日
-
Bash で
for
ループを使って範囲を取得する -
Bash で範囲を取得するために 3つの式を含む
for
ループを使用する -
Bash で
while
ループを使って範囲を取得する -
Bash で
eval
を使って範囲を取得する -
Bash で
seq
を使って範囲を取得する
このチュートリアルでは、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
はインクリメントです。
この場合、x
は 0
に初期化され、x
は 5
以下であるかどうかがテストされ、最後に x
が 1
ずつインクリメントされます。
#!/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 コマンドです。
この場合、seq
は x
から $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