shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Tentando imprimir o conteúdo de um vetor, cujo nome t


From: Julio C. Neves
Subject: Re: [shell-script] Tentando imprimir o conteúdo de um vetor, cujo nome tem uma variável.
Date: Mon, 18 May 2015 16:10:35 -0300

Para criar os vetores:
$ echo "$Var"
equip1 aa bb cc dd ee
equip2 ba bb bc bd be
equip3 ca cb cc cd ce
$ Atrib=$(sed 's/^/v_/;s/ /=(/;s/$/)/' <<< "$Var")
$ echo "$Atrib"
v_equip1=(aa bb cc dd ee)
v_equip2=(ba bb bc bd be)
v_equip3=(ca cb cc cd ce)
$ eval "$Atrib"

Para listar os vetores:
Primeiro veja isso:
$ sed 's/ .*//;s/^/\$\{v_/;s/$/\[@\]\}/' <<< "$Var"
${v_equip1[@]}
${v_equip2[@]}
${v_equip3[@]}
então é só listar direto:
$ for Linha in $(sed 's/ .*//;s/^/\$\{v_/;s/$/\[@\]\}/' <<< "$Var"); do  eval echo $Linha; done
aa bb cc dd ee
ba bb bc bd be
ca cb cc cd ce


Abcs,
Julio
@juliobash
P
róximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 08 a 12/06/15
São Paulo 4Linux 15 a 19/06/15
Curitiba SoftCell 10 a 14/08/15

São Paulo 4Linux 21 a 25/09/15
São Paulo 4Linux 07 a 11/12/15

Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 18 de maio de 2015 00:36, address@hidden [shell-script] <address@hidden> escreveu:
 

Prezados


Para o arquivo relatorio.txt :


equip1 aa bb cc dd ee

equip2 ba bb bc bd be

equip3 ca cb cc cd ce

.

Fiz o seguinte para criar um vetor para cada linha do arquivo.


O nome de cada vetor é "v_" seguido do primeiro elemento do vetor

A atribuição funciona, mas...


while read linha; do

  vetor=( $linha )

  eval "v_${vetor[0]}"=( $linha )

  # como imprimir cada vetor?

  # eu fiz:

  echo "${v_$vetor[*]}" # E dá erro...de substituição incorreto

done < relatorio.txt 


Seria uma indireção? Eu tentei mas não consegui fazer nada funcional.


Agradeço qualquer dica...



reply via email to

[Prev in Thread] Current Thread [Next in Thread]