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
相关推荐
枫叶丹45 小时前
【Qt开发】Qt系统(三)->事件过滤器
java·c语言·开发语言·数据库·c++·qt
wjs20245 小时前
CSS Position(定位)
开发语言
亓才孓5 小时前
继承父类和接口,又冲突的变量名怎么解决
java·开发语言
superman超哥6 小时前
Rust API 设计的零成本抽象原则:性能与表达力的完美统一
开发语言·后端·rust·rust api·抽象原则·性能与表达力
云栖梦泽6 小时前
Rust语言:系统级编程的新时代选择
开发语言
qq_406176146 小时前
什么是模块化
开发语言·前端·javascript·ajax·html5
superman超哥6 小时前
Rust 所有权的三大基本规则:内存安全的类型系统基石
开发语言·后端·rust·内存安全·rust所有权·基本规则·系统基石
菩提祖师_6 小时前
量子计算在网络安全中的应用
开发语言·javascript·爬虫·flutter
superman超哥6 小时前
Rust 线程安全性保证(Send 与 Sync):编译期并发安全的类型系统
开发语言·后端·rust·编程语言·并发安全·send与sync·rust线程
倔强的小石头_6 小时前
Python 从入门到实战(十八):学生成绩系统高级功能实战(实时通知与数据看板)
开发语言·python