How to rename an associative array in Bash?

后端 未结 8 2132
感情败类
感情败类 2020-12-08 21:51

I need to loop over an associative array and drain the contents of it to a temp array (and perform some update to the value).

The leftover contents of the first arra

8条回答
  •  春和景丽
    2020-12-08 22:52

    Copying associative arrays is not directly possible in bash. The best solution probably is, as already been pointed out, to iterate through the array and copy it step by step.

    There is another solution which I used to pass variables to functions. You could use the same technique for copying associative arrays:

    # declare associative array
    declare -A assoc_array=(["key1"]="value1" ["key2"]="value2")
    # convert associative array to string
    assoc_array_string=$(declare -p assoc_array)
    # create new associative array from string
    eval "declare -A new_assoc_array="${assoc_array_string#*=}
    # show array definition
    declare -p new_assoc_array
    

提交回复
热议问题