shell 从任意/命名关联数组中提取值和其中的键[重复]

zaqlnxep  于 2023-05-23  发布在  Shell
关注(0)|答案(1)|浏览(187)

此问题已在此处有答案

Bash indirect reference to an associative array(3个答案)
13小时前关闭
我使用declare -A在字典中添加键值对。

APP_LIST=('app1' 'app2')
declare -A app1=([column_a]="111" [column_b]="222")
declare -A app2=([column_a]="333" [column_b]="444")

我尝试使用for循环从app 1和app 2打印column_B的值,但似乎不起作用。

for i in ${APP_LIST[*]}; do
    echo ${${i}[column_b]}
done

错误消息:

${${i}[column_b]}: bad substitution

请帮帮忙,谢谢!
我希望使用for循环打印app 1和app 2中column_b的值。

xzv2uavs

xzv2uavs1#

$ cat tst.sh
#!/usr/bin/env bash

app_list=('app1' 'app2')
declare -A app1=([column_a]="111" [column_b]="222")
declare -A app2=([column_a]="333" [column_b]="444")

declare -n arr_name
for arr_name in "${app_list[@]}"; do
    echo "${arr_name[column_b]}"
done
$ ./tst.sh
222
444

相关问题