且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何复制ksh关联数组?

更新时间:2022-05-13 05:19:44

未测试:

typeset -A NEW_ARRAY
for key in "${!OTHER_ARRAY[@]}"; do
    NEW_ARRAY["$key"]="${OTHER_ARRAY[$key]}"
done

已测试:

#!/usr/bin/ksh93

OTHER_ARRAY=( [Key1]="Val1" [Key2]="Val2" [Key3]="Val3" )

echo Keys: ${!OTHER_ARRAY[*]}
echo Values: ${OTHER_ARRAY[*]}

typeset -A NEW_ARRAY
for key in "${!OTHER_ARRAY[@]}"; do
    NEW_ARRAY["$key"]="${OTHER_ARRAY[$key]}"
done

echo Keys: ${!NEW_ARRAY[*]}
echo Values: ${NEW_ARRAY[*]}

结果:

/home/exuser>./a
Keys: Key3 Key1 Key2
Values: Val3 Val1 Val2
Keys: Key3 Key1 Key2
Values: Val3 Val1 Val2