bash 배열 반복

bash 배열 반복

한 배열의 값을 사용하여 다른 배열의 값을 가리키고 싶은데 알 수 없습니다. 나는 이것이 매우 기본적이라고 생각한다. 파일에서 다음과 같이 x, y, z 각각과 관련된 하나의 행을 생성하고 싶지만 첫 번째 행만 가져옵니다.

#! /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

관련 정보