首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Linux中访问循环中的变量值?

如何在Linux中访问循环中的变量值?
EN

Stack Overflow用户
提问于 2019-08-20 21:12:31
回答 1查看 47关注 0票数 0

我尝试使用如下循环获取shell脚本中的变量值:

代码语言:javascript
复制
#!/bin/bash

VR1a=1.5
VR2a=8.3
VR3a=15

VR1b=0.9
VR2b=5.7
VR3b=20

for j in a b
do
 VR1="VR1$j"
 VR2="VR2$j"
 VR3="VR3$j"
 echo ${!VR1}
 echo ${!VR2}
 echo ${!VR3}

done

我希望得到的输出是:

代码语言:javascript
复制
For variable a VR1=1.5, VR2=8.3 and VR3=15
For variable b VR1=0.9, VR2=5.7 and VR3=20

但结果是:

代码语言:javascript
复制
For variable a VR1=VR1a, VR2=VR2a and VR3=VR3a
For variable b VR1=VR1b, VR2=VR2b and VR3=VR3b

我怎样才能得到数字而不是变量名?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-20 21:27:21

使用nameref变量:

代码语言:javascript
复制
#!/usr/bin/env bash

VR1a=1.5
VR2a=8.3
VR3a=15

VR1b=0.9
VR2b=5.7
VR3b=20

for j in a b
do
 typeset -n VR1="VR1$j"
 typeset -n VR2="VR2$j"
 typeset -n VR3="VR3$j"
 echo ${VR1}
 echo ${VR2}
 echo ${VR3}
done

或者使用关联数组:

代码语言:javascript
复制
#!/usr/bin/env bash

typeset -A VR
VR["1a"]=1.5
VR["2a"]=8.3
VR["3a"]=15
VR["1b"]=0.9
VR["2b"]=5.7
VR["3b"]=20

for j in a b
do
 echo "${VR["1$j"]}"
 echo "${VR["2$j"]}"
 echo "${VR["3$j"]}"
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57574522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档