bash中通过变量中的内容获取对应的关联数组

bash中通过变量中的内容获取对应的关联数组

Bash declare 手册:

https://phoenixnap.com/kb/bash-declare

实际问题:

在 bash 中创建了多个关联数组,需要根据输入的值,获取不同的关联数组。

可以使用 if 进行多次判断,但是效率低且代码显得很臃肿。

希望可以根据根据输入的值,组成关联数组的名字,然后通过该名字拿到数组的内容

解决方法:

复制代码
#!/bin/bash
# vim: ts=4 sw=4 sts=4 et:

# 定义关联数组
declare -A A_LIST
declare -A B_LIST
A_LIST[1]="A_1"
A_LIST[2]="A_2"

B_LIST[1]="B_1"
B_LIST[2]="B_2"

#selected=A
selected=B
arr_name="${selected}_LIST"
declare -n  selected_arr=$arr_name

# 通过间接引用遍历关联数组
for key in "${!selected_arr[@]}"; do
  echo "$key: ${selected_arr[$key]}"
done

脚本运行输出为:

复制代码
$ ./test.sh
2: B_2
1: B_1
相关推荐
CC.GG7 分钟前
【Qt】Qt初识
开发语言·qt
好评12429 分钟前
C/C++ 内存管理:摆脱野指针和内存泄漏
开发语言·c++·内存管理·c/c++
Arva .32 分钟前
读写锁 (ReadWriteLock)
java·开发语言
灰灰勇闯IT34 分钟前
虚拟机性能优化实战:从基础调优到深度压榨性能
开发语言·学习·性能优化·虚拟机
霸王大陆43 分钟前
《零基础学PHP:从入门到实战》教程-模块八:面向对象编程(OOP)入门-5
开发语言·笔记·php·课程设计
毕设源码-郭学长44 分钟前
【开题答辩全过程】以 基于java的校园安全管理系统为例,包含答辩的问题和答案
java·开发语言
ranchor6661 小时前
pandas 模拟题
开发语言·python·pandas
xun_xin6661 小时前
如何解决Qt与OpenCV编译器不匹配问题
开发语言·qt·opencv
代码雕刻家1 小时前
C语言中fgets函数详解
c语言·开发语言
iナナ1 小时前
Java自定义协议的发布订阅式消息队列(二)
java·开发语言·jvm·学习·spring·消息队列