HOWTO · Bash

Bash での配列の長さ

このチュートリアルでは、Bash で配列の長さを見つける方法について説明します。

このページの内容

さまざまな目的のために、配列の長さを知る必要があります。たとえば、配列内の特定のデータを検索していて、配列の長さがわからない場合は、検索を開始する前に、まず配列の長さを見つける必要があります。

配列の長さを見つけるための他のプログラミング言語用の組み込み関数またはキーワードがあります。しかし、Bash スクリプトでは、少し異なります。

この記事では、配列の長さを見つけてさまざまな目的に使用する方法を説明します。

Bash で配列の長さを取得する

配列の長さを見つけるための一般的な構文は次のとおりです。

${#ARRAY[*]}

以下の例では、配列の長さのみを検出しています。

names=("Alen" "Walker" "Miller")
echo The length of the array is ${#names[*]}

上記のコードでは、names 配列の長さを数えました。サンプルコードを実行すると、以下の出力が得られます。

出力:

The length of the array is 3

Bash の for ループで配列の長さを取得する

それでは、事前の例を見てみましょう。配列の長さを見つける方法を理解しました。

ここで、この配列の長さをさまざまな目的に使用する方法を説明します。以下では、前の例の更新バージョンを共有しました。これは、最初に配列の長さをカウントし、次にそれを for ループで使用して、配列内のすべての要素を表示します。

これは、この例のコードです。

names=("Alen" "Walker" "Miller")
len=${#names[*]}
echo The length of the array is - $len
for (( i=0; i<$len; i++ ))
do
echo The value of element $i is: ${names[$i]}
done

ご覧のとおり、len=${#names[*]} の​​行で、len という名前の変数を作成し、それを配列の長さの値に割り当てました。ループを実行して配列データを抽出するには、配列の長さを知る必要があるため、これは重要です。

その後、配列の長さを出力し、for ループを実行して各配列要素を抽出しました。以下のプログラムの出力を見ると、0 から配列インデックスを開始したことがわかります。

ご存知のように、配列インデックスは常に 0 から始まります。

出力:

The length of the array is 3
The value of element 0 is: Alen
The value of element 1 is: Walker
The value of element 2 is: Miller

この記事で使用されているすべてのコードは Bash で記述されていることに注意してください。Linux シェル環境でのみ機能します。