$ num=0
$ declare A_$num=42 # create A_0 and set it to 42
$ echo $A_0
42
$ b=A_$num # create a variable with the contents "A_0"
$ echo ${!b} # indirection
42
Você pode iterar num
e usar declare
para criar as variáveis e a indireção para referenciá-las. Mas você não prefere usar matrizes?
for i in foo bar baz
do
some_array+=($i) # concatenate values onto the array
done
ou
string="foo bar baz"
some_array=($string)
Que tal isso?
$ cat IPs
192.168.0.1
192.168.0.2
192.168.0.3
$ cat readips
#!/bin/bash
while read -r ip
do
IP[count++]=ip # is it necessary to save them in an array,
do_something_directly_with ip # if you use them right away?
done < IPs