Como ecoar string de outra variável shell de string

Como ecoar string de outra variável shell de string

Gostaríamos de repetir o valor de uma variável shell que possui outra string de variável em seu nome de variável. por exemplo:

queremos a seguinte saída

var1=1
var2=2

Tentamos vários formulários semelhantes ao abaixo, mas eles não funcionam

for j in {1..2}
do
   export var${j}=$j
   echo "var${j}=${var${j}}"
done 

Como definimos e repetimos variáveis ​​​​de shell contendo strings variáveis ​​​​em seus nomes?

Obrigado

Responder1

No bash (ou ksh), você pode usar a sintaxe indireta ${!var}para fazer referência à variável cujo nome é o valor de $var. Tem que ser o nome completo, então você tem que fazer assim:

for j in {1..2}; do
   # This could have been declare instead of export if you don't need
   # to export the variable.
   export var${j}=$j
   varname=var$j
   echo "var${j}=${!varname}"
done

Responder2

Vocêpodefaça isso como @rici explicou, mas raramente é uma boa ideia. Você poderia conseguir o mesmo com uma sintaxe mais simples se usar arrays:

var=("1" "2");
for j in {0..1}
do
    echo "var$j : ${var[$j]}"
done

informação relacionada