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

(你甚至不需要 bash)

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}"

相关内容