我有一个关联数组,它就像通常的双数组一样。
结构类似于:[ [0,1], [0,1,2] ]。代码:
declare -A array
array[0,0]=0
array[0,1]=1
array[1,0]=0
array[1,1]=1
array[1,2]=2
如何获得array[0]和array[1]的长度?在此示例中:2 和 3。
谢谢你。
PS我试图搜索重复项。没有成功。如果不清楚:我不知道数组的长度。
效率测试后选择答案。这是基于@RenaudPacalet 回答的函数示例:
function getLength() {
local k=$(eval "echo \${!$1[@]}")
local re="(\<$2,[0-9])"
echo $k | grep -Eo $re | wc -l
}
使用示例:getLength array 1
在这个问题的情况下返回 3。
请记住,使用$(eval "echo \${!$1[@]}")
比${!array[@]}
.