变量内部的Shell Script变量

时间:2012-09-20 03:12:31

标签: bash shell variables

我正在编写一个shell脚本,如下所示。

#/bin/bash

ip1="1.1.1.1"
ip2="2.2.2.2"

for ((i=1; i<=2; i++))
do
echo "$[ip$i]"

done

我跑完后得到错误 ./1.sh:8行:1.1.1.1:语法错误:算术运算符无效(错误标记为“.1.1.1”)

非常感谢你!

1 个答案:

答案 0 :(得分:2)

使用间接变量扩展。

#/bin/bash

ip1="1.1.1.1"
ip2="2.2.2.2"

for ((i=1; i<=2; i++))
do
  var="ip$i"
  echo "${!var}"
done

然而,更好的想法是使用数组。

ips=( "1.1.1.1" "2.2.2.2" )
for ip in "${ips[@]}"; do
   echo "$ip"
done

for ((i=1; i<=${#ip[@]}; i++)); do
   echo "${ips[i]}"
done