Eu preciso criar dinamicamente um nome de variável da seguinte forma (exemplo simplificado):
#!/bin/sh
IDX=1
SERIES1="a b c d e f g"
SERIES2="h i j k l m n"
# How to get this value contains $SERIES1 or $SERIES2
# depending on the value of $IDX
CURRENT=${SERIES\${IDX}} # doesn't work, just an example
Se IDX=1
esperaria ter
echo $CURRENT
para exibir
a b c d e f g
e se IDX=2
exibir
h i j k l m n
Eu precisarei usá-lo em um loop para um número indeterminado de SÉRIE vindo de outro script.
EDITAR
Atualmente usando sh
como shell, mas se necessário eu posso usar um diferente (mesmo que isso signifique que eu precise converter algumas coisas, mas está tudo bem)
Minha pergunta é: Como atribuo a série desejada a CURRENT
O que eu tentei? O exemplo acima (que não funciona) e outros sabores como:
CURRENT=$${SERIES$${IDX}}
CURRENT=${SERIES${IDX}}
EDIT2
Estou a caminho de algo:
eval echo $'echo "SERIES$IDX"'
Isso exibe a série correta. No entanto, não consigo encontrar uma maneira de atribuí-lo a CURRENT
:
CURRENT=eval echo $'echo "SERIES$IDX"'
Mas eu acho que mais cavar e eu vou encontrar alguma coisa. Qualquer ajuda apreciada embora
EDIT3
Ok, achei :
eval "CURRENT=\$SERIES$IDX"
echo $CURRENT
exibe o que eu espero, então CURRENT
tem o conteúdo certo.