
mlgrassi
(usa Debian)
Enviado em 01/04/2017 - 22:19h
Tenho a seguinte situação:
Possuo vários vetores previamente populados:
vetor_A=(1 2 3 4 5)
vetor_B=(6 7 8 9 10)
vetor_C=(11 12 13 14)
... e daí por diante
Meu objetivo é passar como parâmetro para a função a seguir, uma variável contendo apenas o final do nome da variável do vetor. Pois se observarmos o formato das variáveis vetor, percebe-se que apenas o final muda, ou seja, A, B e C.
Logo, quando eu precisar exibir ou manipular os valores dos vetores, ao invés de fazer um laço para cada vetor, eu simplesmente preciso passar o parâmetro que referencia o vetor alvo para a função:
func_dinamica_vetor () {
for((i=0;i<${#vetor_$1[@]};i++));do
echo ${vetor_$1[$i]};
done
}
func_dinamica_vetor B
No caso acima estou tentando exibir o conteúdo individual de cada índice do vetor B, porém, está ocorrendo erro de
bash: ${vetor_$1[0]}: substituição incorreta, acredito que seja por causa do simbolo de dólar que está entre chaves para referenciar o primeiro parâmetro recebido pela função.
Saberiam me dizer como contornar isso ou outra forma que não fuja muito desta lógica para fazer isso funcionar?