我想使用shell脚本针对不同的体系结构交叉编译一组lib。
一组库:
LIBS=(FOO ZOO)特定于每个库的核心数组(此库将为其交叉编译)。
FOO_CORES=(ARM_CM3 ARM_CM4 ARM_CR4)
ZOO_CORES=(ARM_CR4)基本上,我希望看到这种情况的发生:
make FOO CORE=ARM_CM3
make FOO CORE=ARM_CM4
make FOO CORE=ARM_CR4
make ZOO CORE=ARM_CR4我可以运行一个for循环,它可以遍历库数组。但是我如何引用每个特定于库的核心数组呢?我可以使用双替换来获得每个特定于库的核心名称变量...但仅此而已!不确定双重替换是否也适用于数组。
for lib in ${LIBS[@]};do
eval "lib_name=${lib}_CORES"
cores_list=${!lib_name}
echo $lib_name $cores_list
done输出:
FOO_CORES ARM_CM3
ZOO_CORES ARM_CR4发布于 2018-09-14 22:10:09
出于间接参数扩展的目的,参数" name“由数组名称和所需索引组成。
for lib in "${LIBS[@]}"; do
a=${lib}_CORES
t="$a[@]"
printf '%s\n' "$a"
printf ' %s\n' "${!t}"
done产生
FOO_CORES
ARM_CM3
ARM_CM4
ARM_CR4
ZOO_CORES
ARM_CR4https://stackoverflow.com/questions/52333632
复制相似问题