GNU/Linux >> Linux の 問題 >  >> Linux

シェルスクリプトのforループを理解する

以前のチュートリアルに続き、今日のシェルスクリプトのforループについて理解しましょう。以前にwhileループについて説明しましたが、forループは異なる形式で同様の使用法を使用しています。

はじめに

ループは、世界中のプログラマーによって広く使用されています。シェルスクリプトにループを追加すると、記述する必要のあるコードの量を減らすことで、コードを効率的にすることができます。

これは、ステートメントを繰り返し書き込むのではなく、シェルスクリプト内の一連のステートメントの実行を自動化することによって行われます。

ループを実行したい回数がわかっている場合は、シェルスクリプトでforループを使用します。この反復回数は、アイテムのリストで指定できます。シェルスクリプトでのforループの動作を理解しましょう。

シェルスクリプトでforループを作成するにはどうすればよいですか?

シェルスクリプトでforループを実行する方法は2つあります。

1。 「in」キーワードの使用

for var in val_1 val_2 val_3 ... val_n
do
    statement 1
    statement 2
    statement 3
done

ここに4つのキーワードがあります。つまり、 for、in、do および完了

  1. 最初のキーワード「for」 シェルスクリプトを実行するときのループの開始を指定します。
  2. その後に、val_1、val_2などで指定された値をとることができる変数が続きます。
  3. キーワードin この値のリストの先頭を指定します。カンマなどの他の文字は「値」の一部として扱われるため、これらの値は「スペース」で区切る必要があります。
  4. キーワードdo 実行したいステートメントの前に使用されます
  5. 完了 ループの終わりを意味します。

2。 Cスタイルの初期化を使用する

シェルスクリプトでforループを使用する別の方法は、Cプログラミングアプローチを組み込むことです。構文は次のようになります。

for (( initialization parameter; condition; updation))
do
    statement 1
    statement 2
    statement 3
done

ここでは、「in」を置き換えます よりCに似たアプローチのキーワード。

  1. ループが最初の反復を開始する前に、初期化パラメーターを使用して、ループが実行されるループ数のカウンターとして機能する変数を初期化します。
  2. 条件である限り TRUEと評価されると、ループは「 do」の間に記述されたすべてのステートメントを実行します。 」と「完了 「。
  3. 最後に、最後のパラメータ「更新 」は、カウンターとして機能する変数を更新するために使用されます。

シェルスクリプトのforループの例

これで、シェルスクリプトのforループの概念と動作に精通しました。ただし、コマンドを正しく理解するには、コマンドをコードで使用できる必要があります。

forループの実際の使用例をいくつか見てみましょう

1。基本的なforループの作成

まず、シンプルで基本的なものから始めます。ここでは、forループを使用する最初の方法を使用します。

キーワードinを使用します ループが実行された回数をユーザーに通知しながら、5回の反復でループを実行します。これは、ループがコードでどのように見えるかです。

#!/bin/sh
for i in 1 2 3 4 5
do
  echo "Executing loop $i time(s)"
done

2。シェルスクリプトでforループを使用して乱数のランダムリストを生成する

次に、ForループのCのようなバリアントを使用する例に移ります。組み込みコマンドを使用して、シェルスクリプトで疑似乱数を生成する方法は誰もが知っています。

ここでは、この知識を使用して、5つの疑似乱数のリストを生成します。

#!/bin/sh
for (( i=1; i <= 5; i++ ))
do
 echo "Randomiser iteration $i: $RANDOM"
done

3。 forループを使用してファイルとディレクトリの名前を印刷する

多数のファイルやディレクトリを1つずつ処理するには時間がかかります。同じコマンドを何度も入力するのは時間の無駄です。

したがって、forループを利用して、コマンドの実行を自動化する必要があります。以下のサンプルシェルスクリプトを見て、ホームディレクトリにあるすべてのファイルとディレクトリの名前を出力してみましょう。

#!/bin/sh
i=1
cd ~
for item in *
do
    echo "File number $((i++)) : $item"
done

結論

forループは、シェルプログラマーにとって強力なツールです。一連のステートメントを一定の回数実行する必要がある場合に使用するのに最適なツールです。

特定のステートメントの実行を自動化することで、記述する必要のあるコードが少なくなるだけでなく、デバッグなどのより重要なタスクで使用できる時間を解放できます。

このチュートリアルが、Forループ関数の使用方法を理解するのに役立つことを願っています。ご不明な点、フィードバック、提案がございましたら、下のコメント欄でお気軽にお問い合わせください。


Linux
  1. Bashシェルのカスタマイズ

  2. シェルスクリプトの変数の命名規則はありますか?

  3. ループの維持 – Bash For、While、Until ループの例

  1. Linux の rc スクリプトを理解する

  2. シェル スクリプトの単体テスト

  3. スクリプト内の bash シェル スクリプトおよび関数の変数スコープ

  1. シェルスクリプトの連想配列?

  2. シェルスクリプトの正しいロック?

  3. Unixシェルスクリプトのファイル拡張子?