Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Debian
Por wr.silva
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Comunidades

Comunidade Linux Home Participar da comunidade Linux Participar Fórum Linux Fórum Membros LinuxMembros RSS do fórum

<< Primeira | Anterior Próxima | Última >>

Condição IF com $? [RESOLVIDO]

[1] Enviado em 07/02/2012 - 11:59h Condição IF com $? [RESOLVIDO]
Linux user: Diego Tavares
diegoneto

(usa Outra)


Galera, eu estou com um erro um tanto estranho.

Tenho um script (script1) chamando outro script (script2).

O script2 foi feito em expect utilizando condições de retorno do telnet executado dentro dele. Há 3 condições para encerrar o arquivo e cada uma deles retorna ao script1 com return 0, exit 1 ou exit 2.

Logo após a execução do script2 há uma condição analisando a saída do return/exit (variável $?) que irá executar X comandos se $?=1, Y comandos se $?=2 e Z comandos se #?=0.

Quando eu elaborei o código, ele funcionava bem, mas agora ele está intermitente sem nenhum motivo aparente. Gostaria de saber se há algum caracter ñ impresso no #?, um buffer ou algo parecido.

Alguém tem alguma sugestão??

Segue abaixo o script2 do expect:
#!/usr/bin/expect -f

spawn telnet $OSS_IP $OSS_Porta

expect "Userid:$" {
send "$OSS_User\n"
expect "Password:$"
send "$OSS_Pass\n"
expect "NE:$"
send "NE=$MSC_HLR_Nome\n"
expect "<"
send "$Comando_Nome;\n"

if { "$Comando_Nome" == "SYRIP:LOG" } {
expect "<"
send -- \x4
expect "SUMMARY VIEW OF EVENTS FOR THE LAST 12 MONTHS"
return 0
expect eof
} else {
expect "<"
send "QUIT;\n"
expect "Connection"
return 0
expect eof
}
} "Unable to connect to remote host: Connection timed out" {
exit 1
expect eof
} "RESPONSE RECEPTION INTERRUPTED" {
exit 2
expect eof
}

Script1

Script/Expect_Telnet.exp > $PstResultMSC

if [ $? -eq 1 ]
then {
echo "$OSS_Nome $MSC_Nome $Comando_Nome OFFLINE" >> $PstResultErro$ArqResultOffline"_"$DataTexto".txt"
mv -f $PstResultMSC$Comando_Nome_Arq/"Temp"/$OSS_Nome"_"$MSC_Nome"_"$Comando_Nome_Arq"_"$DataTexto.txt $PstResultErro
echo "# OSS $OSS_Nome - MSC $MSC_Nome offline para o comando $Comando_Nome."
}
fi

 

  


[2] Enviado em 08/02/2012 - 01:48h Re: Condição IF com $? [RESOLVIDO]
Linux user: motomagx
motomagx

(usa Ubuntu)


o vilão não seria o # no final?

 

[3] Enviado em 08/02/2012 - 15:53h Re: Condição IF com $? [RESOLVIDO]
Linux user: Diego Tavares
diegoneto

(usa Outra)


Cara, valeu pela ajuda, mas já resolvi o meu caso com o case.

case "$?" in
1)
0)

Ainda não está muito padronizado e também não faz tanto sentido para mim funcionar com o case e não com o if, mas depois eu vou analisar isso com calma.

e o "#" indica comentário. O script ñ lê o q vem depois disso.

 

  
<< Primeira | Anterior Próxima | Última >>
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.