Bash-关联数组中的值的指针?

绿色浣熊23

有没有办法Bash使指针指向关联数组中像这样:

declare -A mapp
mapp=( ["key"]="${value}" )

for k in "${!mapp[@]}"; do 
    pointer="${mapp["${k}"]}"   # How do I do this?
done

通常,您不需要使用指针,但是我很好奇是否有一种方法可以创建一个。

在更简单的情况下(例如,对于普通/字符串变量),我将使用以下指针:

pointer=b
read -p "Enter something: " b
eval pointer=\$${pointer}

如何为关联数组执行此操作?这不起作用(跳过删除线的代码):

declare -A mapp
mapp=( ["first"]="${a}"  ["second"]="${b}" )

for k in "${!mapp[@]}"; do 
    v=mapp["${k}"]

    read -p "Enter ${k}: " new

    eval v=\$${v}    # Doesn't work

done

declare -A mapp
mapp=( ["first"]="${a}"  ["second"]="${b}" )

for k in "${!mapp[@]}"; do 
    v=mapp["${k}"]

    read -p "Enter ${k}: " k

    eval v=\$${v}    # Doesn't work

done

这也不起作用(跳过删除线的代码):

declare -A mapp
mapp=( ["first"]="${a}"  ["second"]="${b}" )

for k in "${!mapp[@]}"; do 
    v=mapp

    read -p "Enter ${k}: " new

    eval v=\$${v["${k}"]}    # Doesn't work (and has terrible readability)

done

declare -A mapp
mapp=( ["first"]="${a}"  ["second"]="${b}" )

for k in "${!mapp[@]}"; do 
    v=mapp

    read -p "Enter ${k}: " k

    eval v=\$${v["${k}"]}    # Doesn't work (and has terrible readability)

done
切普纳

bash4.3中,您可以使用nameref:

$ mapp=([key]=value)
$ declare -n x=mapp[key]  # NO dollar sign!
$ x=7
$ echo ${mapp[key]}
7

在4.3之前,您需要declare不同地使用命令来进行间接。

$ mapp=([key]=value)
$ x=mapp[key]  # NO dollar sign!
$ declare "$x=7"
$ echo ${mapp[key]}
7

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

bash中来自querystring的关联数组?

来自分类Dev

bash中的嵌套关联数组

来自分类Dev

在bash中动态创建关联数组

来自分类Dev

在Makefile中迭代bash关联数组

来自分类Dev

仅在bash中为空时分配关联数组值

来自分类Dev

返回值,属于与bash关联数组中的glob表达式匹配的键名

来自分类Dev

仅在bash中为空时分配关联数组值

来自分类Dev

存储Bash关联数组

来自分类Dev

BASH关联数组打印

来自分类Dev

BASH关联数组打印

来自分类Dev

bash中的关联数组名称数组

来自分类Dev

如何在bash中访问关联数组

来自分类Dev

在Bash测试中是否声明了关联数组

来自分类Dev

Bash将星形字符视为关联数组中的单词

来自分类Dev

Bash-SSH到关联数组中的主机

来自分类Dev

将Bash中的CSV读入字典/关联数组

来自分类Dev

Bash将星形字符视为关联数组中的单词

来自分类Dev

Bash脚本中的关联数组出现问题

来自分类Dev

如何在bash中访问关联数组

来自分类Dev

Bash:将空间作为关联数组中的键

来自分类Dev

合并关联数组BASH中的重复键

来自分类Dev

将关联数组的内容打印到 bash 中的文件

来自分类Dev

bash 中的散列集或关联数组

来自分类Dev

bash和for循环中的关联数组

来自分类Dev

Bash对关联数组的间接引用

来自分类Dev

动态bash关联数组键

来自分类Dev

从字符串Bash关联数组?

来自分类Dev

BASH关联数组重排键

来自分类Dev

在 CMake 中使用 Bash 关联数组