首页 > 解决方案 > 数组引用的bash打印值

问题描述

p=0
array="host_01"
HostProjects[$p]="project_01"
AvgCr=1569.22
eval "${array}_${HostProjects[$p]}=$AvgCr"
echo "Host Credit is ${host_01_project_01}"

给我 1569.22

但是我怎样才能得到结果 1569.22 从:

printf '%s\n' "${array}_${HostProjects[$p]}"
or even from:
echo "${array}_${HostProjects[$p]}"

这给了我 host_01_project_01

我尝试了几件事,但最终导致语法错误。谢谢。

标签: basheval

解决方案


如果您使用 Bash,间接参数扩展是您的朋友:

varname="${array}_${HostProjects[$p]}"
echo "The value you want is ${!varname}"

推荐阅读