Condição IF com $? [RESOLVIDO]

1. Condição IF com $? [RESOLVIDO]

Diego Tavares
diegoneto

(usa Outra)

Enviado em 07/02/2012 - 11:59h

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. Re: Condição IF com $? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/02/2012 - 01:48h

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


3. Re: Condição IF com $? [RESOLVIDO]

Diego Tavares
diegoneto

(usa Outra)

Enviado em 08/02/2012 - 15:53h

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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts