我已经开始编写两周的脚本了,现在我正在尝试使用korn shell脚本中的关联数组创建一个3D数组。我尝试了所有可能的组合,我可以想到而不会使脚本很长,但我无法取得任何进展。我试图解决关联数组中的单个元素,我无法做到这一点。我真的很感激任何帮助。
#!/usr/bin/ksh93
typeset -A array_of_array #array_of_array is associative
array_of_array=([array_index]="A B C D E"
[A]="AA AAA AAAA"
[B]="BB BBB BBBB"
[C]="CC CCC CCCC"
[D]="DD DDD DDDD"
[E]="EE EEE EEEE"
)
print_fun(){
for INDEX in ${array_of_array["array_index"]};
do
echo "$INDEX --->"
echo ${${array_of_array[$INDEX]}[0]} #this is incorrect instrn
for ITEMS in ${array_of_array[$INDEX]}
do
echo $'\t\t\t'$ITEMS
done
done
}
print_fun
我正在尝试获得这样的输出:
A ---> AA
AAA
AAAA
B ---> BB
BBB
BBBB
C ---> CC
CCC
CCCC
答案 0 :(得分:3)
您没有阵列数组;你有一个字符串数组。
#!/usr/bin/ksh93
typeset -A array_of_array
# This associates another array with each key in the outer array
array_of_array=(
[A]=(AA AAA AAAA)
[B]=(BB BBB BBBB)
[C]=(CC CCC CCCC)
[D]=(DD DDD DDDD)
[E]=(EE EEE EEEE)
)
print_fun(){
# Use this syntax for iterating over the keys of the outer array
for INDEX in "${!array_of_array[@]}";
do
echo "$INDEX --->"
# Use this syntax for accessing the elements
# of the inner array associate with each key
for ITEMS in "${array_of_array[$INDEX][@]}"
do
echo $'\t\t\t'$ITEMS
done
done
}
print_fun