declare -A assoc=(hello world "key with spaces" "value with spaces" one 1 foo bar) declare -p assoc recho "${assoc[@]}" recho "${assoc[@]@k}" recho "${assoc[*]}" recho "${assoc[*]@k}" set -- hello world "key with spaces" "value with spaces" one 1 foo bar recho "${@}" recho "${@@K}" recho "${@@k}" declare -A clone eval clone=\( "${assoc[@]@K}" \) declare -p clone declare -A posparams eval posparams=\( "${@@K}" \) declare -p posparams