Я ищу эффективный способ скопировать ассоциативный массив, потому что я выполняю это действие в двух вложенных циклах for в моем основном скрипте.
Вот общий формат, который я использую в моем основном скрипте:
#!/bin/bash
declare -A oldLinks
oldLinks["A"]="linkA"
oldLinks["B"]="linkB"
oldLinks["C"]="linkC"
oldLinks["D"]="linkD"
#!/bin/bash
source exportThis.sh
declare -A copyLinks
for i in "${!oldLinks[@]}"; do
copyLinks[$i]=${oldLinks[$i]}
done
for k in "${!copyLinks[@]}"; do
echo "$k -- ${copyLinks[$k]}"
done
Когда я делаю это так в своем основном скрипте, я получаю эту ошибку:
bash: copyLinks: "${oldLinks[@]}": must use subscript when assigning associative array
copyLinks=("${oldLinks[@]}")