erro com test too many arguments [RESOLVIDO]

1. erro com test too many arguments [RESOLVIDO]

Gabriel Bortolotto Contessotto
essemesmo

(usa KUbuntu)

Enviado em 12/02/2010 - 14:43h

Pessoal estou com uma duvida, neste ponto o script deve apenas comparar duas string que serão recordas de dois arquivos, eles existem e estão preenchidos. Quando executo o script ele dá erro - test: too many arguments" - Alguém poderia me ajudar.

if test `tail -n 1 $TMP | cut -b 1-15` = `tail -n 1 $TMP_COMP | cut -b 1-15` ;

then

exit 1

else

cat $TMP | mail -s “Assunto” $DESTINATARIO


sh -x xxx.xxx

++ tail -n 1 /root/scripts/log/tmp/teste
++ cut -b 1-15
++ tail -n 1 /root/scripts/log/tmp/.teste
++ cut -b 1-15
+ test Feb 5 05:23:25 = Feb 5 05:23:25
xxx.xx: line 39: test: too many arguments
+ cat /root/scripts/log/tmp/teste
+ mail -s $'\342\200\234"Assunto"\342\200\235' destinatario
+ tail -n 1 /root/scripts/log/tmp/teste
+ exit 1



  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/02/2010 - 19:16h

foi isso que mostrei no meu script

3. Re: erro com test too many arguments [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 12/02/2010 - 14:50h

Tenta jogar o resultado dos comandos para novas variáveis e comparar somente o valor delas, pode ser que ele se atrapalhe...


4. Re: erro com test too many arguments [RESOLVIDO]

Gabriel Bortolotto Contessotto
essemesmo

(usa KUbuntu)

Enviado em 12/02/2010 - 15:54h

Já tentei, não deu certo. Ele não se confunde.


5. Re: erro com test too many arguments [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/02/2010 - 16:12h

seria algo assim??

VAR1=`tail -n 1 $TMP | cut -b 1-15`
VAR2=`tail -n 1 $TMP_COMP | cut -b 1-15`

if [ "$VAR1" = "$VAR2" ]; then

exit 1

else

cat $TMP | mail -s “Assunto” $DESTINATARIO

fi


6. Re: erro com test too many arguments [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/02/2010 - 16:14h

a comparação é em numero ou em letra

se for letra vc usa "=" para comparar
se for numero vc usa "-eq" para comparar


7. Re: erro com test too many arguments [RESOLVIDO]

Gabriel Bortolotto Contessotto
essemesmo

(usa KUbuntu)

Enviado em 12/02/2010 - 16:38h

Essa eu já tentei, :D
VAR1=`tail -n 1 $TMP | cut -b 1-15`
VAR2=`tail -n 1 $TMP_COMP | cut -b 1-15`


Bem teoricamente é data. Mas ambas estão dentro de um arquivo txt, estou comparando texto vou tentar compara numero e ver se retorna algo.


8. Re: erro com test too many arguments [RESOLVIDO]

paulo
psdrop

(usa CentOS)

Enviado em 12/02/2010 - 17:09h

Não faltou um fi depois do
cat $TMP | mail -s “Assunto” $DESTINATARIO

fiz um teste assim;

# cat te.sh
TMP=$(echo "/tmp/te.txt")
TMP_COMP=$(echo "/tmp/te2.txt")
if test `tail -n 1 $TMP | cut -b 1-15` = `tail -n 1 $TMP_COMP | cut -b 1-15` ;

then

exit 1

else

echo $TMP
fi


dentro de te.txt e te2.txt

nome1
nome2
nome3

ele nao fazia nada por que se fosse igual saia depois quando adicionei nome4 no te.txt ele mostou /tmp/te.txt

soh o fi no final mesmo acho que é...

abs


9. Re: erro com test too many arguments [RESOLVIDO]

Francisco Ambrozio
fco

(usa Slackware)

Enviado em 12/02/2010 - 17:10h

Veja:

shyko@breath:~$ VAR1="banana"
shyko@breath:~$ VAR2="maça"
shyko@breath:~$ [ "$VAR1" == "$VAR2" ] && echo 'É igual'
shyko@breath:~$ VAR2="banana"
shyko@breath:~$ [ "$VAR1" == "$VAR2" ] && echo 'É igual'
É igual

O "segredo" está nas aspas na hora da comparação. Habitue-se a usá-la e tratar tudo como se fosse string (quando for fazer comparações), mesmo que o conteúdo da variável seja numérico.

Abraço.


10. Re: erro com test too many arguments [RESOLVIDO]

Gabriel Bortolotto Contessotto
essemesmo

(usa KUbuntu)

Enviado em 12/02/2010 - 17:33h

Pessoal agradeço a todos, deu certo, o que fiz foi adicionar mais duas variaveis no inicio do script
A=`tail -n 1 $TMP | cut -b 1-15`
B=`tail -n 1 $TMP_COMP | cut -b 1-15`

E depois comparo apenas como string como o Xico_Ambrozio falou adicionando aspas.
Quanto ao fi, esqueci de adiciona-lo aqui, no script ele existe.

if test "$A" = "$B"

then

exit 1

else
echo "Obrigado a todos."



11. Re: erro com test too many arguments [RESOLVIDO]

Gabriel Bortolotto Contessotto
essemesmo

(usa KUbuntu)

Enviado em 13/02/2010 - 02:21h

É nesse momento que fico com cara de bunda! douglasfim não havia visto que você havia coloca as " " na hora de comparar o teste, quando fiz pela primeira vez eu não havia colocado, e na hora que li seu script não reparei nas aspas, desculpa realmente foi exatamente o que você fez.




12. Re: erro com test too many arguments [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/02/2010 - 14:21h

sem problemas, isso acontece =)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts