我有一个数组:
old_array=("color" "red" "shape" "circle" "vote" "10")
(交替键/值)
我需要构建一个new_array,以便:
echo $new_array[color]
red
echo $new_array[shape]
circle
等等。
答案 0 :(得分:3)
你需要bash的关联数组。
首先,将变量声明为Associative Array
declare -A
:
declare -A new_array
然后像使用常规数组一样设置数组中的值:
new_array[color]="red"
您可以将old_array
转换为new_array
,如下所示:
old_array=("color" "red" "shape" "circle" "vote" "10")
declare -A new_array
for (( i = 0; i < ${#old_array[*]}; i += 2 )); do
key=${old_array[i]}
value=${old_array[i+1]}
new_array[$key]=$value
done
您也可以直接编写new_array:
declare -A new_array=([color]=red [shape]=circle [vote]=10)