我想在 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}"