shell不支持二维数组,但是还是可以通过简单的方式实现二维数组的功能 。

思路就是用数组A1(行)里的值作为B系列(列)数组的变量名,

话不多说,直接上代码:

#!/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

 输出如下:

B1
B1v1
B1v2
B1v3
B1v4
B2
B1v1
B1v2
B1v3
B1v4
B3
B1v1
B1v2
B1v3
B1v4
B1
B1v1 B1v2 B1v3 B1v4
B2
B2v1 B2v2 B2v3 B2v4
B3
B3v1 B3v2 B3v3 B3v4
 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐