bash配列の繰り返し

bash配列の繰り返し

ある配列の値を使用して別の配列の値を指したいのですが、わかりません。私はこれが非常に基本的だと思います。ファイルでは、次のようにx、y、zのそれぞれに関連する1つの行を作成したいが、最初の行のみを取得します。

#! /bin/bash
declare -a id
declare -A header

id=( x y z )

header[x]="X Value"
header[y]="Y Value"
header[z]="Z Value"

for ident in $id
do
    echo $ident ${header[${ident}]}
done

答え1

${id[@]}以下を使用して配列のすべての要素を表示する必要がありますid

$ for i in "${id[@]}"; do echo "This is "${header["$i"]}""; done
This is X Value
This is Y Value
This is Z Value

以下を使用して最初の要素のみを取得する場合$id:

$ for i in "$id"; do echo "This is "${header["$i"]}""; done
This is X Value

関連情報