我有一個像通常的雙數組一樣的關聯數組。在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