Variáveis em shell Script [RESOLVIDO]

1. Variáveis em shell Script [RESOLVIDO]

Walter gomes dos santos junior
spam

(usa Ubuntu)

Enviado em 25/05/2009 - 10:15h

Bom dia pessoal do VOL,

estou tentando fazer um arquivo shell para executar a varredura em arquivo de log e verificar as linhas que são iguais mas ao tentar executar o seguinte comando:
$ant=$linha
aparece o seguinte erro:
./script.sh: line 22: =1302603050600360349110114: command not found

eu não consigo atribuir um valor se quer para uma variável.
Alguém sabe onde está o problema??

desde já Thanks


  


2. MELHOR RESPOSTA

Phillipe Smith
Smithux

(usa Arch Linux)

Enviado em 25/05/2009 - 11:35h

Kra, olha só.... o erro é simples...
O que você tá tentando fazer é atribuir o valor de uma variável, no caso $linha, ao VALOR de outra variável, $ant.... Isso jamais será possível.
O que tu tem que fazer é atribuir o valor de $linha a VARIÁVEL $ant, ou seja, a atribuição deve ser feita assim:

ant=$linha e não $ant=$linha

sum=1 e não $sum=1

A partir do momento que você coloca o "$" na frente de uma variável, você tá especificando que quer mostrar o valor dela.... Por isso o erro....

Deu pra entender?


3. Sintax

Daniel Fernandes
volcom

(usa Debian)

Enviado em 25/05/2009 - 10:31h

O correto é:

ANT=ant

Para verificar oconteúdo da variável:

echo $ANT
ant

Lembrando que por boas práticas sempre é legal usar a variável em caracteres maiúsculos, para diferenciar de comandos ou algo do tipo.

Qualquer dúvida, nos avise.


4. Re: Variáveis em shell Script [RESOLVIDO]

Walter gomes dos santos junior
spam

(usa Ubuntu)

Enviado em 25/05/2009 - 10:54h

ok

Mas o que ocorre é que $ant é uma variável e $linha é outra variável e o valor da variável $linha é meio grande tipo 1302603050600360349110114...

vlw


5. Re: Variáveis em shell Script [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 25/05/2009 - 11:02h

Como esta fazendo para atribuir os valores das variáveis?

No seu Script, qual linha atribui os valores?

Se puder, coloque o conteúdo para verificarmos.


6. Re: Variáveis em shell Script [RESOLVIDO]

Walter gomes dos santos junior
spam

(usa Ubuntu)

Enviado em 25/05/2009 - 11:07h

O trecho do código q estou fazendo, marquei as partes que dão erro:


while read linha
do

if [ $ant=="" ]
then
$ant=$linha #dá erro aqui
elif [ $linha==$ant ]
then
$sum+=1
else
echo "Valor $ant possui $sum ocorrências" >>arquivoOrdenado
$ant=$linha # Dá erro aqui
$sum=1 # Dá erro aqui também
fi


7. Re: Variáveis em shell Script [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 25/05/2009 - 11:30h

Você inicializou todas as variáveis?

Tente iniciar as variáveis sem nenhum conteúdo para depois usa-las e atribuir o valor.




8. Re: Variáveis em shell Script [RESOLVIDO]

Walter gomes dos santos junior
spam

(usa Ubuntu)

Enviado em 25/05/2009 - 11:48h

Olá smithux,

como assim especificando que quero mostrar o valor dela?
Significa então que no caso: if [ $ant=="" ] também não funciona mas não dá erro??

vlw cara


9. Re: Variáveis em shell Script [RESOLVIDO]

Walter gomes dos santos junior
spam

(usa Ubuntu)

Enviado em 25/05/2009 - 12:13h

Aew smithux era o que você havia dito mesmo mas agora estou com um problema na parte do elif que ele sempre da falso:

elif [ $linha==$ant ]

Parece que sempre da falso, coloquei valores iguais no arquivo que ele está verificando pra ver se ele dava true nessa parte mas passou batido. É o mesmo problema? eu tenho que colocar sem o $ ?
e no no if [ $ant=="" ] também sem o $ ?


10. Re: Variáveis em shell Script [RESOLVIDO]

Phillipe Smith
Smithux

(usa Arch Linux)

Enviado em 25/05/2009 - 21:38h

Tá quase tudo certo....
Tenta algo assim:

Errado: if [ $ant=="" ]
Certo: if [ -z $ant ] #Fazendo assim será verificado se a variável "ant" está vazia. É o modo correto, pois o "-z" testa faz esse teste.


11. Re: Variáveis em shell Script [RESOLVIDO]

Walter gomes dos santos junior
spam

(usa Ubuntu)

Enviado em 26/05/2009 - 08:10h

fala aew smithux vlw msm cara ta quase tudo funcionando. uma última dúvida e esse trecho:
elif [ $linha==$ant ]

está correto??

Vlw


12. Re: Variáveis em shell Script [RESOLVIDO]

Phillipe Smith
Smithux

(usa Arch Linux)

Enviado em 26/05/2009 - 14:36h

O trecho tá correto sim meu camarada!

elif [ $linha==$ant ]

Nesse caso tá correto porque você tá fazendo uma comparação do VALOR de duas variáveis compreendes?!

Mas só uma coisinha, se você ta trabalhando com valores numéricos nessas variáveis, tipo linha=1, ant=5, coisa do tipo.... O certo é você fazer da seguinte forma:

elif [ $linha -eq $ant ]

"-eq" significa "equal", falando em portuga, "igual"

Vê se funciona tudo blz agora! ;)



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts