![Bash 4에서 다차원 배열을 통한 반복](https://linux55.com/image/69581/Bash%204%EC%97%90%EC%84%9C%20%EB%8B%A4%EC%B0%A8%EC%9B%90%20%EB%B0%B0%EC%97%B4%EC%9D%84%20%ED%86%B5%ED%95%9C%20%EB%B0%98%EB%B3%B5.png)
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}"