
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