ksh formato de substituição de variável?

4

Eu tenho variáveis chamadas var1EMI , var2EMI , var1DDE , var2DDE , etc e eu preciso ser capaz de iterar sobre eles assim:

for dir in var1 var2
do
  echo "EMI value for " $dir " is " ${${dir}EMI}
  echo "DDE value for " $dir " is " ${${dir}DDE}
done

Não consigo descobrir como obter as substituições de ${${dir}EMI} para resolver.

    
por user88710 04.11.2013 / 22:48

1 resposta

6

O ksh 93 tem um comando nameref que permite criar "aliases" para as variáveis:

var1EMI=a
var2EMI=b
for v in var1 var2; do 
  nameref var=${v}EMI
  echo "${v}EMI is $var"
done
var1EMI is a
var2EMI is b

Para o ksh88, você pode ser forçado a usar eval : replace

nameref var=${v}EMI

com

eval var=\$${v}EMI
    
por 04.11.2013 / 23:23

Tags