Bash 4에서 다차원 배열을 통한 반복

Bash 4에서 다차원 배열을 통한 반복

Bash(버전 4.3.30)에서 해시 목록을 정의하고 싶습니다.

  • 게이트웨이 4개
  • 모든 게이트웨이에는
    • IP
    • IP6
    • 이름
    • ...

이 목록을 반복하여 각 게이트웨이에서 일부 작업을 수행하고 싶습니다.

많이 확인해 봤는데 bash는 다차원 배열을 지원하지 않는 것 같죠?

답변1

bash아직 다차원 배열이 없습니다. 오직 ksh93.

여기서 배열을 사용하지 않고도 csv와 유사한 구조를 사용할 수 있습니다.

#! /bin/sh -
gws="\
foo,1.1.1.12,1::1
blah,2.2.2.2,2::2"

while IFS=, read name ip4 ip6; do
  echo something with "$name" "$ip4"...
done << E
$gws
E

(배쉬도 필요하지 않습니다)

그리고 ksh93:

gws=(
  (name=foo  ip4=1.1.1.1 ip6=1::1)
  (name=blah ip4=2.2.2.2 ip6=1::2)
)

printf '%s\n' "${gws[0].name}"

관련 정보