我尝试使用如下循环获取shell脚本中的变量值:
#!/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我希望得到的输出是:
For variable a VR1=1.5, VR2=8.3 and VR3=15
For variable b VR1=0.9, VR2=5.7 and VR3=20但结果是:
For variable a VR1=VR1a, VR2=VR2a and VR3=VR3a
For variable b VR1=VR1b, VR2=VR2b and VR3=VR3b我怎样才能得到数字而不是变量名?
发布于 2019-08-20 21:27:21
使用nameref变量:
#!/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或者使用关联数组:
#!/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"]}"
donehttps://stackoverflow.com/questions/57574522
复制相似问题