ウェブサイト検索

配列を反復処理するための Bash の「for」ループ


「for」ループは、ほとんどすべてのプログラミング言語の基本的な部分です。それは、希望する回数で繰り返されるコードを書くのを助けます。Linuxベースのシステムでは、Bashもユーザーがスクリプトを通じて日常のタスクを自動化するためにループを活用できる専用の構文を特徴としています。

無限に近い数のシナリオで「for」ループを使用できますが、このガイドでは、より大きな目標を達成するために、より広範で複雑なシナリオに組み込むことができる3つの基本的なシナリオについて説明します。配列を反復処理するためにforループを使用する3つの基本シナリオを探ります。

「for」ループの動作を示すために、私はUbuntu 22.04を使用してBashスクリプトを実演します。

バッシュファイルの作成

シナリオを探る前に、Bashスクリプトを含むBashファイルを作成しましょう。ターミナルで希望するディレクトリに移動し、「nano」または「touch」コマンドを使ってファイルを作成してください。

このガイドでは、私の「Documents」ディレクトリに「test.sh」ファイルを作成します。

これにより、nanoテキストエディタを使用してBashファイルが開きます。

ここでは、スクリプトファイルに書きたいコードを記述することができます。シナリオを探ることから始めましょう。

配列の内容を表示するための「for」ループの使用

エディタでBashファイルを開いた状態で、コードを追加し始めることができます。これがBashファイルであることを示すためには、次のことを指定する必要があります:

“#! /bin/bash”

まず、配列を定義して5つの値を割り当てる必要があります。名前にジョン、ジェーン、ジム、ジャック、そしてジャニスを割り当てましょう。

さあ、楽しい部分に入ります。イテレーター「i」を使用して、配列の内容を反復処理し、表示関数を実行するためのforループを設定する必要があります。次のように行うことができます:

この行はループを設定します。「$」シンボルを使って、配列の特定のインデックスの値にアクセスしようとしていることを示しています。「@」シンボルは配列のインデックスを指し、私たちが「i」イテレータを用いてアクセスしようとしている値を含んでいます。

Bashスクリプトでは、文法により関数を「do」と「done」キーワードの間に指定する必要があります。したがって、配列の内容を表示しようとしているので、以下のように入力します:

これにより、配列のすべての内容を順番に表示します。さて、私たちのスクリプトはこのようになります。

このスクリプトファイルの内容を保存するには「Ctrl+O」を押し、nanoエディタを終了するには「Ctrl+X」を押してください。

スクリプトを実行する

すべてのコードが整ったので、このコードを実行して出力を見るにはどうすればよいか疑問に思うかもしれません。ターミナルに次のように入力してください:

$bash test.sh

ここでは、私たちが定義した名前が表示されているのを見ることができます。

配列の内容をテキストファイルに書き込むための「for」ループの使用

このシナリオは、特定のシナリオの出力が配列に格納され、その配列の内容を将来の参照または別の計算のために出力しなければならない場合にうまく機能します。

それでは、前のシナリオで書いたコードを修正しましょう。配列の各エントリを1つずつ印刷するのではなく、それをテキストファイルに書き出す必要があります。以下のコマンドを使用してスクリプトファイルを開いてください。

$nano test.sh

さて、"writers" という名前の配列があるので、"writers.txt" というファイルに >> 記号を使って書き出します。それで、あなたのコードはこのようになります:

ファイルを保存して終了し、スクリプトを実行します。

スクリプトを実行する

前のシナリオと同様に、更新されたスクリプトを次のように実行できます:

$bash test.sh

今回はコードを実行すると、ターミナルに出力が表示されないことがわかります。これは、コードがすべてをテキストファイルに出力しているためです。同じディレクトリにテキストファイルが作成されているはずです。

ファイルを開くと(ファイルをダブルクリックするだけで開けます)、名前がファイルに追加されていることがわかります。

与えられた文字列を配列の要素と比較するための「for」ループの使用

このシナリオには同じBashスクリプトを使用し、さらに拡張します。

私たちのコードの主要な構造は同じままですが、ループコードの内容を更新する必要があります。同じスクリプトを使用して、提供された名前が配列の名前のいずれかと一致するかどうかを確認します。一致する場合は、その人に挨拶します。他の配列の名前については、単にそれらを表示するだけです。

「nano」を使ってファイルを開きましょう:

$nano test.sh

さて、doとdoneのキーワードの間のコードを次のように更新したいと思います。

このコードは実行時に配列内の名前のいずれかが「Janis」と一致するかどうかをチェックし、一致する場合は「Hi Janis」と表示します。それ以外の場合は、単に名前を表示します。あなたのコードは次のようになります:

このコードを実行するためには、ファイルを保存してテキストエディタを終了する必要があります。

スクリプトを実行する

ターミナルに戻ったら、変更したBashスクリプトを実行するために同じものを使用できます。

$bash test.sh

結論

これらの3つは、Bashスクリプトで「for」ループを使用する非常に基本的な例です。これらのスクリプトが何をできるかについてもっと学ぶにつれて、このループが非常に役立ち、非常に複雑なコードで利用できることがわかるでしょう。スクリプトをよりよく理解し、それを日常の操作で使用するためには、コードの基本的なコンポーネントと構文が何をするのかを理解する必要があります。

これらのシナリオに関して問題が発生した場合や、ループやBashスクリプトについてもっと学びたい場合は、コメントセクションを通じてお気軽にお問い合わせください。喜んでお手伝いします。よろしくお願いします。