问题:shell脚本如何获取二维数组数据?
方法:
方法一
#数组元素以空格分割
sites=("www.a.com www.b.com www.c.com www.d.com" "www.e.cn www.f.cn")
n_sites=${#sites[*]} #获取一维sites的数组长度
for ((i=0;i<$n_sites;i++));
do
inner_sites=(${sites[$i]}) #将一维sites字符串赋值到数组
n_inner_sites=${#inner_sites[*]} #获取二维sites的数组长度
for ((j=0;j<$n_inner_sites;j++));
do
echo ${inner_sites[$j]} #回显site
#do something
done
done
方法二
#!/bin/bash
A1=(B1 B2 B3)
B1=(B1v1 B1v2 B1v3 B1v4)
B2=(B2v1 B2v2 B2v3 B2v4)
B3=(B3v1 B3v2 B3v3 B3v4)
#循环方式输出B列数据
for A in ${A1[@]};do
echo ${A}
TMP=$A[@] #这里的处理是关键
TempB=(${!TMP}) #这里的处理是关键
for B in ${TempB[@]};do
echo ${B}
done
done
#下标方式输入B列数据
for A in ${A1[@]};do
echo ${A}
TMP=$A[@]
TempB=(${!TMP})
echo ${TempB[0]} ${TempB[1]} ${TempB[2]} ${TempB[3]}
done
参考:
https://codeleading.com/article/13751455680/
https://blog.csdn.net/Mickeywaugh/article/details/116480383