Como atribuir valor de contador ao nome da variável [RESOLVIDO]

1. Como atribuir valor de contador ao nome da variável [RESOLVIDO]

Demian Calderon
caldemi

(usa Ubuntu)

Enviado em 20/01/2012 - 00:22h

Ola pessoal, alguém pode me ajudar no meu script?

Preciso ler de um arquivo uma informação repetidamente. Para enxugar o script, tentei criar um loop que atribui o valor do contador "CONT" ao nome da variável "VAR" que recebe a informação:

Resumindo, eu queria substituir o trecho :
VAR1=`cat arq.txt | head -1 | tail -1`
VAR2=`cat arq.txt | head -2 | tail -1`
VAR3=`cat arq.txt | head -3 | tail -1`
VAR4=`cat arq.txt | head -4 | tail -1`
VAR5=`cat arq.txt | head -5 | tail -1`
VAR6=`cat arq.txt | head -6 | tail -1`

pelo loop abaixo :
CONT=0
TOT=`wc -l arq.txt | awk '{print $1}'`
while [ $CONT -lt $TOT ];do

CONT=`expr $CONT + 1`
VAR"${CONT}"=`cat arq.txt | head -$CONT | tail -1`

done


Ao executar o script aparece a seguinte mensagem de erro :
./roda.sh: 457: VAR1=8: not found
./roda.sh: 457: VAR2=11: not found
./roda.sh: 457: VAR3=3: not found
./roda.sh: 457: VAR4=6: not found
./roda.sh: 457: VAR5=4: not found

Na mensagem de erro até parece que ele aceita e le os valores corretamente, mas se eu dou um echo, as variáveis estão todas vazias...

Alguém sabe o que está errado, e como posso corrigir?

Obrigado por qualquer dica!

Demian





  


2. Re: Como atribuir valor de contador ao nome da variável [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 20/01/2012 - 00:25h

faz com um array


i=0
CONT=0
TOT=`wc -l arq.txt | awk '{print $1}'`
while [ $CONT -lt $TOT ];do

CONT=`expr $CONT + 1`
VAR[$i]=`cat arq.txt | head -$CONT | tail -1`
i=$((i+1))
done



3. Re: Como atribuir valor de contador ao nome da variável [RESOLVIDO]

Demian Calderon
caldemi

(usa Ubuntu)

Enviado em 20/01/2012 - 00:34h

Caramba, obrigado pela rapidez na resposta!

Fiz como vc sugeriu, mas ainda não funcionou... a mensagem de erro agora ficou parecida:

./roda.sh: 457: VAR[1]=8: not found

Alguma idéia?





4. Re: Como atribuir valor de contador ao nome da variável [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 20/01/2012 - 00:45h

Aqui funcionou direitinho, retorna o código do seu script...

se quiser depurar você pode usar o comando:

bash -x ./nome_script


assim vc vai ver o que acontece linha a linha e identifica o erro


5. Re: Como atribuir valor de contador ao nome da variável [RESOLVIDO]

Demian Calderon
caldemi

(usa Ubuntu)

Enviado em 20/01/2012 - 01:08h

Cara, valeu pelas dicas e pela rapidez, ainda mais nesse horário!

Tava certinho o script, mas eu tava usando #!/bin/sh

Graças a sua dica, troquei para #!/bin/bash e funcionou direitinho.

Mais uma vez, obrigado!

Abraço,

Demian








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts