HOWTO · Bash

Bash で配列要素を出力する

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

配列を操作する場合、配列に格納されているデータを確認する必要がある場合があります。 Bash スクリプトには、配列要素を出力するために使用できるメソッドがいくつかあります。

この記事では、Bash スクリプトで配列要素を出力する方法を示します。 この目的のために、5つの異なる方法について説明します。

また、トピックを簡単にするために必要な例と説明も表示されます。

echo ステートメントを使用して Bash で配列要素を出力する

このメソッドでは、echo キーワードを使用して配列のすべての要素を出力します。 ただし、このキーワードはすべての配列要素を 1 行に出力します。

この目的のために、以下のサンプル コードに従うことができます。

MyArray=('A' 'B' 'C' 'D' 'E')
echo "The array elements are: ${MyArray[@]}"

上記の Bash スクリプトを実行すると、次のような出力が得られます。

The array elements are: A B C D E

for ループを使用して、Bash で配列要素を別々の行に出力する

以下の例では、ループを使用して配列の要素を出力します。 お好みのループを使用できますが、この例では for ループを使用します。

この例のコードを以下に示します。

MyArray=('A' 'B' 'C' 'D' 'E')

for item in "${MyArray[@]}"
do
  echo "$item"
done

上記の例では、${MyArray[@]} であるコードの一部を確認できます。 これは、配列のすべての要素をループで取得するためのものです。

上記の Bash スクリプトを実行すると、次のような出力が得られます。

A
B
C
D
E

history キーワードを使用して、Bash で配列要素を別々の行に出力する

次のメソッドでは、キーワード history を使用して配列の要素を出力します。 ただし、配列要素に ! が含まれている場合、このメソッドは失敗する可能性があることに注意してください。

以下の例では、配列要素を出力するために history キーワードを使用します。 この例のコードは次のようになります。

MyArray=('A' 'B' 'C' 'D' 'E')
echo "The array elements are: "
history -p  "${MyArray[@]}"

上記の Bash スクリプトを実行すると、以下の出力が得られます。

The array elements are:
A
B
C
D
E

basename キーワードを使用して、Bash で配列要素を別々の行に出力する

キーワード basename を使用して、配列のすべての要素を出力することもできます。 ただし、配列要素に ! が含まれている場合、このメソッドは失敗する可能性があることに注意してください。

以下の例では、配列要素を出力するために basename キーワードを使用します。 この例のコードを以下に示します。

MyArray=('A' 'B' 'C' 'D' 'E')
echo "The array elements are: "
basename -a "${MyArray[@]}"

上記の Bash スクリプトを実行すると、次の出力が得られます。

The array elements are:
A
B
C
D
E

shuf キーワードを使用して、Bash で配列要素を別々の行に出力する

Bash には、配列要素を出力するのと同じ目的で使用できる別の組み込みキーワード shuf があります。 ただし、この方法では出力が順序どおりに提供されない場合があることに注意してください。

以下の例では、配列要素を出力するために shuf キーワードを使用します。 この例のコードは次のようになります。

MyArray=('A' 'B' 'C' 'D' 'E')
echo "The array elements are: "
shuf -e "${MyArray[@]}"

上記の Bash スクリプトを実行すると、次の出力が得られます。

The array elements are:
B
A
C
E
D

必要に応じて、上記のいずれかの方法を選択できます。

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