我想使用一个数组的值指向另一个数组中的值,但我无法弄清楚。我认为这是非常基本的。我希望文件生成与 x、y、z 中的每一个相关的一行,如下所示: x XValue, y Yvalue, Z Zvalue 但我只得到第一行。
#! /bin/bash
declare -a id
declare -A header
id=( x y z )
header[x]="X Value"
header[y]="Y Value"
header[z]="Z Value"
for ident in $id
do
echo $ident ${header[${ident}]}
done
答案1
您需要使用${id[@]}
来指示 array 的所有元素id
:
$ for i in "${id[@]}"; do echo "This is "${header["$i"]}""; done
This is X Value
This is Y Value
This is Z Value
当您仅使用以下方法获取第一个元素时$id
:
$ for i in "$id"; do echo "This is "${header["$i"]}""; done
This is X Value