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
相关推荐
玄同7654 分钟前
Python 系统编程双雄:sys 与 os 模块深度实践指南
开发语言·数据库·人工智能·windows·笔记·python·microsoft
Edward.W6 分钟前
Python实现文字转ASCII艺术字生成器
开发语言·python
SatVision炼金士20 分钟前
SDK管理本地java版本
java·开发语言·sdkman
奕成则成21 分钟前
Python 创建虚拟环境
开发语言·python
独自破碎E24 分钟前
什么时候@Async会失效?
java·开发语言
军军君0135 分钟前
Three.js基础功能学习四:摄像机与阴影
开发语言·前端·javascript·3d·typescript·three·三维
Morwit40 分钟前
如何使用CMake构建Qt新项目
开发语言·c++·qt
独自破碎E43 分钟前
Leetcode1499满足不等式的最大值
java·开发语言
zmzb01031 小时前
C++课后习题训练记录Day62
开发语言·c++
蕨蕨学AI1 小时前
【Wolfram语言】36 创建云端应用
开发语言·wolfram