我想在 bash 中定义一个哈希列表(版本 4.3.30):
我想循环遍历这个列表并对每个网关做一些事情。
我搜索了很多,但似乎bash不支持多维数组?
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
Run Code Online (Sandbox Code Playgroud)
(你甚至不需要 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}"
Run Code Online (Sandbox Code Playgroud)