user1670302
user1670302

Reputation: 1

Shell Script variable inside a variable

I'm writing a shell script as below.

#/bin/bash

ip1="1.1.1.1"
ip2="2.2.2.2"

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

done

i get the error after run.
./1.sh: line 8: 1.1.1.1: syntax error: invalid arithmetic operator (error token is ".1.1.1")

Thank you so much !

Upvotes: 0

Views: 1019

Answers (1)

chepner
chepner

Reputation: 532268

Use indirect variable expansion.

#/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

However, a better idea is to use an array.

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

Upvotes: 2

Related Questions