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

时间:2017-06-29 15:20:32

标签: shell

如何获取从数组中获取的变量值

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

提前致谢

2 个答案:

答案 0 :(得分:0)

您可以将IP地址放在关联数组中,然后使用该键访问地址:

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

答案 1 :(得分: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