shell获取二维数组数据

本文共有1149个字,关键词:

问题: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
版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。
添加新评论
暂无评论