2017-06-29 111 views
0

如何获得这从数组取变量的值,如何获取从数组中取得的变量值?

iparray=("ip1" "ip2" "ip3") 
ip2=127.0.0.1 
ip2=127.0.0.2 
ip2=127.0.0.3 


for ips in ${iparray[@]}; do 
for value in $ips; do 
    echo $ips $value 
done 
done 

我得到的输出像下面

ip1 ip1 
ip2 ip2 
ip3 ip3 

,但我需要提前下面

ip1 127.0.0.1 
ip2 127.0.0.2 
ip3 127.0.0.3 

感谢状输出

回答

0

你可以把ip地址放在assoc使用密钥访问地址:

iparray=("ip1" "ip2" "ip3") 
declare -A ip 

ip[ip1]=127.0.0.1 
ip[ip2]=127.0.0.2 
ip[ip3]=127.0.0.3 

for ips in ${iparray[@]}; do 
    echo $ips ${ip[$ips]} 
done 
0

这是一个变量变量的情况。 在bash中,你可以使用$ {!variable}来处理它。

修改您的for循环,

for ips in ${iparray[@]}; do 
    echo $ips ${!ips} 
done 

输出将是:

ip1 127.0.0.1 
ip2 127.0.0.2 
ip3 127.0.0.3