Если есть много предметов, быстрее, хотя и не красивее, чтобы избежать петли.Здесь я использую du | awk
для создания строки инициализации массива:
declare -A ARR=$(
echo '( '$(
du -d0 "$completePath"* |
awk -F$'\t' '{printf "["$2"]="$1" "}'
)')'
)
Если элементов мало (например, тысячи или меньше), используйте цикл, как подсказывает @Inian:
declare -A ARR
while IFS=$'\t' read size name; do
ARR[$name]=$size
done < <(du -d0 "$completePath"*)