繁体   English   中英

Bash - 在数组中打印变量的值

[英]Bash - Print value of variable in array

我想做这样的事情

A='123'
B='143'
C='999'

declare -a arr=(A B C)

for i in "{$arr[@]}"
do
     echo "@i" "$i" 
done

哪个应该给我输出

A 123
B 143
C 999

但我收到变量名,而不是输出中的值(我只是在输出中看到“A @i”...

如果要将变量名存储在循环中,而不是复制它们的值,则可以使用以下命令:

for i in "${arr[@]}"; do
    echo "${!i}"
done

这意味着i的值被视为变量的名称,因此您最终会在循环中回显$A$B$C

当然,这意味着您可以同时打印变量名称,例如使用:

echo "$i: ${!i}"

它不完全相同,但您可能也对使用关联数组感兴趣:

declare -A assoc_arr=( [A]='123' [B]='143' [C]='999' )

for key in "${!assoc_arr[@]}"; do
    echo "$key: ${assoc_arr[$key]}"
done

我建议添加$

declare -a arr=("$A" "$B" "$C")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM