|
From: | Paulo Bettega |
Subject: | Re: [shell-script] Tentando imprimir o conteúdo de um vetor, cujo nome tem uma variável. |
Date: | Mon, 18 May 2015 14:00:35 -0300 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 |
Olá andelnyr, entendi o negócio assim. while read linha;do echo eval v_${linha%% *}=\(${linha#* }\) eval echo '\${v_'${linha%% *}'[*]}' = \${v_${linha%% *}[*]} for i in $(seq 1 $(eval echo \${#v_${linha%% *}[*]}));do let --i eval echo '\${v_'\${linha%% *}\[$i\]\} = \${v_${linha%% *}[\$i]} done done <<<'equip1 aa bb cc dd ee equip2 ba bb bc bd be equip3 ca cb cc cd ce' ${v_equip1[*]} = aa bb cc dd ee ${v_equip1[0]} = aa ${v_equip1[1]} = bb ${v_equip1[2]} = cc ${v_equip1[3]} = dd ${v_equip1[4]} = ee ${v_equip2[*]} = ba bb bc bd be ${v_equip2[0]} = ba ${v_equip2[1]} = bb ${v_equip2[2]} = bc ${v_equip2[3]} = bd ${v_equip2[4]} = be ${v_equip3[*]} = ca cb cc cd ce ${v_equip3[0]} = ca ${v_equip3[1]} = cb ${v_equip3[2]} = cc ${v_equip3[3]} = cd ${v_equip3[4]} = ce Abraços Paulo Bettega On 18-05-2015 00:36, address@hidden [shell-script] wrote:
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... ---------------------------------------------------------------------------------------------------- Enviado por: address@hidden ----------------------------------------------------------------------------------------------------
[Prev in Thread] | Current Thread | [Next in Thread] |