我有一个像通常的双数组一样的关联数组。在Bash中获取关联数组的部分长度(双精度)
结构与此类似:[[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
如何获得数组[0]和阵列[1]的长度?在这个例子中:2和3.
谢谢。
P.S.我试图搜索重复。没有成功。如果不明确:我不知道阵列的长度。
回答是在效率测试后选择的。下面是例子的功能基础上@ 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[@]}
慢得多。
”行为就像它通常的双数组“不,它总是*作为关联数组。 –
echo $ {#array [@]} – py9
@Ignacio Vazquez-Abrams,我的意思是它提醒了双数组。不行为,如果你会:) – MOPO3OB