テクノロジー 開発 非公開: 10 個の Bash For ループの例とその説明

10 個の Bash For ループの例とその説明

For ループは、あらゆるプログラミング言語に不可欠な部分です。これにより、プログラムは特定の数の項目を反復処理できます。

たとえば、「n」個の項目のリストまたは配列を調べたい場合は、for ループを使用します。簡単な例を見てみましょう。

1 バイオレット
2 インジゴ
3
4
レインボーテーブル

アクションを実行するか、上の表の項目を反復するには、For ループが必要です。

Bash For ループ

bash スクリプトの For ループ構文は次のとおりです。

 #!/bin/bash

for VAR in 1 2 3 4 5.....N

do

 ACTION 1

 ACTION 2

 .....

done

Bash For Loop は非常に簡単です。最初の行 #!/bin/bash コードが bash スクリプトであることを示します。 VAR は、ループに使用される一時変数を表します。 N は最大反復回数を示します。 「do」と「done」はそれぞれループを開始および停止します。アクションは、ループ内で実行されるコマンドです。

リスト、文字列、整数、配列などのさまざまな変数を使用して Bash For Loop を実行できます。この記事では、Bash For ループの一般的な例をいくつか示します。

これらのプログラムは bash コマンド ラインで直接実行することも、ファイルに保存して Bash filename.sh コマンドを使用してファイルを実行することもできます。

10 個の Bash For ループの例とその説明
10 個の Bash For ループの例とその説明

静的リストの読み取り

次のリストを考えてみましょう – rainbowColorList = Violet, Indigo, Blue, Green, Yellow, Orange, Red

次のように Bash For ループを使用して上記の文字列リストを出力できます。

 #! /bin/sh

# Define the list

rainbowColorList=Violet,Indigo,Blue,Green,Yellow,Orange,Red

# Comma separator pattern using //,/

for colors in ${rainbowColorList//,/ }

do

   echo $colors

done

出力は新しい行の項目リストになります。

 #Output

Violet
Indigo
Blue
Green
Yellow
Orange
Red
10 個の Bash For ループの例とその説明
10 個の Bash For ループの例とその説明

配列の読み取り

配列を宣言するための構文が異なります。各要素 (文字列) にはかっこを使用します。

 rainbowArray=("Violet" "Indigo" "Blue" "Green" "Yellow" "Orange" "Red")

for colors in "${rainbowArray[@]}"; do

     echo "I like $colors"

done

「@」は、配列内の各要素を反復処理するために使用されます。

 #Output

I like Violet
I like Indigo
I like Blue
I like Green
I like Yellow
I like Orange
I like Red

For ループを使用してインデックスと配列要素を出力することもできます。

 #Printing with index

rainbowArray=("Violet" "Indigo" "Blue" "Green" "Yellow" "Orange" "Red")

for i in "${!rainbowArray[@]}";

do

  echo "Color at index " $i " : " "${rainbowArray[$i]}"

  i=$((i+1));

done
 #Output

Color at index 0 : Violet
Color at index 1 : Indigo
Color at index 2 : Blue
Color at index 3 : Green
Color at index 4 : Yellow
Color at index 5 : Orange
Color at index 6 : Red

「!」を使用することに注意してください。ループ内で要素インデックスを取得します。

10 個の Bash For ループの例とその説明
10 個の Bash For ループの例とその説明

数値範囲の反復

Bash For Loop を使用して、数値範囲を反復処理できます。

 #iterating over range of numbers

echo "Countdown begins..."

for N in {10..0}

do

    echo "$N"

done

「..」は数値の範囲を示します。

 #Output

10
9
8
7
6
5
4
3
2
1
0

範囲を指定してカウント数をスキップすることもできます。

以下の例では、3 ずつカウントをスキップしています。

 #iterating with skip counting

echo "Countdown begins..."

for N in {30..0..3}

do

    echo "$N"

done

上記のプログラムは、最初の数値として 30 から始まり、0 までカウントダウンします。 for ループの最後のパラメーター ‘3’ は、スキップ カウント数を指定します。

 #Output

30
27
24
21
18
15
12
9
6
3
0
10 個の Bash For ループの例とその説明
10 個の Bash For ループの例とその説明

文字列と文字

Bash For Loop を使用すると、多くの興味深い文字列操作を実行できます。

たとえば、For ループで ‘seq’ 演算子を使用すると、文字列の各文字を読み取ることができます。

 #read characters of a string

myword="welcome"

for i in $(seq 1 ${#myword})

do

 echo "${myword:i-1:1}"

done

最初の文字を最初に取得するには、「seq」は 1 で始まる必要があることに注意してください。

 #Output

W
e
l
c
o
m
e

文字列をスペースで区切って 1 つずつ出力することもできます。

 #read each word from a sentence

mysentence="Welcome to GeekFlare. One stop hub for all techies"

for word in $mysentence; do

    echo $word

done
 #Output

Welcome 
to 
GeekFlare. 
One 
stop 
hub 
for 
all 
techies
10 個の Bash For ループの例とその説明
10 個の Bash For ループの例とその説明

Java などの他のプログラミング言語と同様に、Bash For ループ内に式を配置できます。

 for (( var=10; var>=0; var-- ))

do 

  echo "Counting down...$var"

done
 #Output

Counting down...10
Counting down...9
Counting down...8
Counting down...7
Counting down...6
Counting down...5
Counting down...4
Counting down...3
Counting down...2
Counting down...1
Counting down...0

コマンドライン引数の読み取り

コマンドライン引数から読み取るには、「read」コマンドを使用します。以下の例では、ユーザーからいくつかの数値を取得し、Bash For ループを使用して合計を出力します。変数 total を使用して、数値の中間および最終の合計または合計を保存します。

 read -a array -p "Enter the numbers you want to add:"

total=0

for i in ${array[@]}; do

  let total+=$i

done

echo "Sum of the numbers is: $total"

出力は次のとおりです。

 #Output

Enter the numbers you want to add: 3 4 66
Sum of the numbers is: 73

奇数と偶数を見つける

1 から 10 までの奇数と偶数 (または任意の数値 N) を見つけるには、Bash for Loop とともに if 条件を使用する必要があります。偶数を決定するには、数値を 2 で割って、余りが 0 の場合は偶数、それ以外の場合は奇数として分類します。

 #declare the list where the even and odd numbers will be sorted and kept

evennum=""

oddnum=""

for (( i=1; i<=10; i++ ))

do

remainder=$(( $i % 2 ))

if [ $remainder -eq 0 ]; then

 evennum="$evennum $i "

else

 oddnum="$oddnum $i "

fi

done

echo "Even numbers are: "$evennum

echo "Odd numbers are: "$oddnum

上の例では範囲を 10 として指定していることに注意してください。この数値を変更して、任意の範囲内の偶数と奇数を取得できます。前のセクションで学習した「read」コマンドを使用して、ユーザーから番号を読み取ってみることもできます。

 #Output

Even numbers are: 2 4 6 8 10
Odd numbers are: 1 3 5 7 9

無限 ループ

無限ループまたは無限ループは実行が停止しないループであり、Ctrl+C を使用してプログラムを強制的に停止する必要があります。 ‘; を使用すると、無限ループを簡単に作成できます。 ;’ for ループ内の演算子:

 for (( ; ; ))

do

  echo "Welcome to "

done
 #Output

Welcome to 
Welcome to 
Welcome to 
Welcome to 
Welcome to 
Welcome to 
Welcome to 
Welcome to 
Welcome to 
Welcome to 
^C
$

ブレークステートメント

Break ステートメントは、「if」条件が満たされた場合にループを終了するために使用されます。

 for color in Violet Indigo Blue Green Yellow Orange Red

do

  if [[ "$color" == 'Green' ]]; then

    break

  fi

  echo "Searching for Green, the color now is $color"

done

echo "I found my color $color"

この例では、緑色を見つけようとしています。 For ループは各色をループし、緑色が見つかると、break ステートメントによりプログラムがループから抜け出します。

 #Output

Searching for Green, the color now is Violet
Searching for Green, the color now is Indigo
Searching for Green, the color now is Blue
I found my color Green

ステートメントを継続する

Continue は、現在のループをスキップし、特定の条件に基づいて次のループに移動するために使用されます。たとえば、前のプログラムの「緑」という色を印刷したくない場合は、 continue を入力すると、緑を除く他のすべての色が表示されます。

 for color in Violet Indigo Blue Green Yellow Orange Red

do

  if [[ "$color" == 'Green' ]]; then

    continue

  fi

  echo "$color"

done
 #Output

Violet
Indigo
Blue
Yellow
Orange
Red

最後の言葉

文字列、整数、配列、リストを使用した Bash For ループの最も一般的な使用法について説明しました。 Linux を学習していて Windows 10 マシンを持っている場合は、WSL 機能を使用して Windows マシンに Linux をインストールできます。

これで、CMD と同様の方法で Linux ターミナルを使用できるようになります。

次に、Python を使用して bash スクリプトを実行する方法を確認できます。

「 10 個の Bash For ループの例とその説明」についてわかりやすく解説!絶対に観るべきベスト2動画

【Bシェル/bash入門】(6) 繰り返し処理 〜for文を使ってみる〜
【6分で解説】Linux入門|シェル&カーネルを説明できますか?(sh、bash、tcsh)

For ループは、あらゆるプログラミング言語に不可欠な部分です。これにより、プログラムは特定の数の項目を反復処理できます。

たとえば、「n」個の項目のリストまたは配列を調べたい場合は、for ループを使用します。簡単な例を見てみましょう。

1 バイオレット
2 インジゴ
3
4
レインボーテーブル

アクションを実行するか、上の表の項目を反復するには、For ループが必要です。

Bash For ループ

bash スクリプトの For ループ構文は次のとおりです。

 #!/bin/bash

for VAR in 1 2 3 4 5.....N

do

 ACTION 1

 ACTION 2

 .....

done

Bash For Loop は非常に簡単です。最初の行 #!/bin/bash コードが bash スクリプトであることを示します。 VAR は、ループに使用される一時変数を表します。 N は最大反復回数を示します。 「do」と「done」はそれぞれループを開始および停止します。アクションは、ループ内で実行されるコマンドです。

リスト、文字列、整数、配列などのさまざまな変数を使用して Bash For Loop を実行できます。この記事では、Bash For ループの一般的な例をいくつか示します。

これらのプログラムは bash コマンド ラインで直接実行することも、ファイルに保存して Bash filename.sh コマンドを使用してファイルを実行することもできます。

10 個の Bash For ループの例とその説明
10 個の Bash For ループの例とその説明

静的リストの読み取り

次のリストを考えてみましょう – rainbowColorList = Violet, Indigo, Blue, Green, Yellow, Orange, Red

次のように Bash For ループを使用して上記の文字列リストを出力できます。

 #! /bin/sh

# Define the list

rainbowColorList=Violet,Indigo,Blue,Green,Yellow,Orange,Red

# Comma separator pattern using //,/

for colors in ${rainbowColorList//,/ }

do

   echo $colors

done

出力は新しい行の項目リストになります。

 #Output

Violet
Indigo
Blue
Green
Yellow
Orange
Red
10 個の Bash For ループの例とその説明
10 個の Bash For ループの例とその説明

配列の読み取り

配列を宣言するための構文が異なります。各要素 (文字列) にはかっこを使用します。

 rainbowArray=("Violet" "Indigo" "Blue" "Green" "Yellow" "Orange" "Red")

for colors in "${rainbowArray[@]}"; do

     echo "I like $colors"

done

「@」は、配列内の各要素を反復処理するために使用されます。

 #Output

I like Violet
I like Indigo
I like Blue
I like Green
I like Yellow
I like Orange
I like Red

For ループを使用してインデックスと配列要素を出力することもできます。

 #Printing with index

rainbowArray=("Violet" "Indigo" "Blue" "Green" "Yellow" "Orange" "Red")

for i in "${!rainbowArray[@]}";

do

  echo "Color at index " $i " : " "${rainbowArray[$i]}"

  i=$((i+1));

done
 #Output

Color at index 0 : Violet
Color at index 1 : Indigo
Color at index 2 : Blue
Color at index 3 : Green
Color at index 4 : Yellow
Color at index 5 : Orange
Color at index 6 : Red

「!」を使用することに注意してください。ループ内で要素インデックスを取得します。

10 個の Bash For ループの例とその説明
10 個の Bash For ループの例とその説明

数値範囲の反復

Bash For Loop を使用して、数値範囲を反復処理できます。

 #iterating over range of numbers

echo "Countdown begins..."

for N in {10..0}

do

    echo "$N"

done

「..」は数値の範囲を示します。

 #Output

10
9
8
7
6
5
4
3
2
1
0

範囲を指定してカウント数をスキップすることもできます。

以下の例では、3 ずつカウントをスキップしています。

 #iterating with skip counting

echo "Countdown begins..."

for N in {30..0..3}

do

    echo "$N"

done

上記のプログラムは、最初の数値として 30 から始まり、0 までカウントダウンします。 for ループの最後のパラメーター ‘3’ は、スキップ カウント数を指定します。

 #Output

30
27
24
21
18
15
12
9
6
3
0
10 個の Bash For ループの例とその説明
10 個の Bash For ループの例とその説明

文字列と文字

Bash For Loop を使用すると、多くの興味深い文字列操作を実行できます。

たとえば、For ループで ‘seq’ 演算子を使用すると、文字列の各文字を読み取ることができます。

 #read characters of a string

myword="welcome"

for i in $(seq 1 ${#myword})

do

 echo "${myword:i-1:1}"

done

最初の文字を最初に取得するには、「seq」は 1 で始まる必要があることに注意してください。

 #Output

W
e
l
c
o
m
e

文字列をスペースで区切って 1 つずつ出力することもできます。

 #read each word from a sentence

mysentence="Welcome to GeekFlare. One stop hub for all techies"

for word in $mysentence; do

    echo $word

done
 #Output

Welcome 
to 
GeekFlare. 
One 
stop 
hub 
for 
all 
techies
10 個の Bash For ループの例とその説明
10 個の Bash For ループの例とその説明

Java などの他のプログラミング言語と同様に、Bash For ループ内に式を配置できます。

 for (( var=10; var>=0; var-- ))

do 

  echo "Counting down...$var"

done
 #Output

Counting down...10
Counting down...9
Counting down...8
Counting down...7
Counting down...6
Counting down...5
Counting down...4
Counting down...3
Counting down...2
Counting down...1
Counting down...0

コマンドライン引数の読み取り

コマンドライン引数から読み取るには、「read」コマンドを使用します。以下の例では、ユーザーからいくつかの数値を取得し、Bash For ループを使用して合計を出力します。変数 total を使用して、数値の中間および最終の合計または合計を保存します。

 read -a array -p "Enter the numbers you want to add:"

total=0

for i in ${array[@]}; do

  let total+=$i

done

echo "Sum of the numbers is: $total"

出力は次のとおりです。

 #Output

Enter the numbers you want to add: 3 4 66
Sum of the numbers is: 73

奇数と偶数を見つける

1 から 10 までの奇数と偶数 (または任意の数値 N) を見つけるには、Bash for Loop とともに if 条件を使用する必要があります。偶数を決定するには、数値を 2 で割って、余りが 0 の場合は偶数、それ以外の場合は奇数として分類します。

 #declare the list where the even and odd numbers will be sorted and kept

evennum=""

oddnum=""

for (( i=1; i<=10; i++ ))

do

remainder=$(( $i % 2 ))

if [ $remainder -eq 0 ]; then

 evennum="$evennum $i "

else

 oddnum="$oddnum $i "

fi

done

echo "Even numbers are: "$evennum

echo "Odd numbers are: "$oddnum

上の例では範囲を 10 として指定していることに注意してください。この数値を変更して、任意の範囲内の偶数と奇数を取得できます。前のセクションで学習した「read」コマンドを使用して、ユーザーから番号を読み取ってみることもできます。

 #Output

Even numbers are: 2 4 6 8 10
Odd numbers are: 1 3 5 7 9

無限 ループ

無限ループまたは無限ループは実行が停止しないループであり、Ctrl+C を使用してプログラムを強制的に停止する必要があります。 ‘; を使用すると、無限ループを簡単に作成できます。 ;’ for ループ内の演算子:

 for (( ; ; ))

do

  echo "Welcome to "

done
 #Output

Welcome to 
Welcome to 
Welcome to 
Welcome to 
Welcome to 
Welcome to 
Welcome to 
Welcome to 
Welcome to 
Welcome to 
^C
$

ブレークステートメント

Break ステートメントは、「if」条件が満たされた場合にループを終了するために使用されます。

 for color in Violet Indigo Blue Green Yellow Orange Red

do

  if [[ "$color" == 'Green' ]]; then

    break

  fi

  echo "Searching for Green, the color now is $color"

done

echo "I found my color $color"

この例では、緑色を見つけようとしています。 For ループは各色をループし、緑色が見つかると、break ステートメントによりプログラムがループから抜け出します。

 #Output

Searching for Green, the color now is Violet
Searching for Green, the color now is Indigo
Searching for Green, the color now is Blue
I found my color Green

ステートメントを継続する

Continue は、現在のループをスキップし、特定の条件に基づいて次のループに移動するために使用されます。たとえば、前のプログラムの「緑」という色を印刷したくない場合は、 continue を入力すると、緑を除く他のすべての色が表示されます。

 for color in Violet Indigo Blue Green Yellow Orange Red

do

  if [[ "$color" == 'Green' ]]; then

    continue

  fi

  echo "$color"

done
 #Output

Violet
Indigo
Blue
Yellow
Orange
Red

最後の言葉

文字列、整数、配列、リストを使用した Bash For ループの最も一般的な使用法について説明しました。 Linux を学習していて Windows 10 マシンを持っている場合は、WSL 機能を使用して Windows マシンに Linux をインストールできます。

これで、CMD と同様の方法で Linux ターミナルを使用できるようになります。

次に、Python を使用して bash スクリプトを実行する方法を確認できます。

「 10 個の Bash For ループの例とその説明」についてわかりやすく解説!絶対に観るべきベスト2動画

【Bシェル/bash入門】(6) 繰り返し処理 〜for文を使ってみる〜
【6分で解説】Linux入門|シェル&カーネルを説明できますか?(sh、bash、tcsh)