shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] While e as condições


From: William José Vicente
Subject: Re: [shell-script] While e as condições
Date: Wed, 17 Oct 2007 22:12:45 -0300

Pablo,

   apesar da sua mensagem estar um pouco confusa, já que você escreveu uma
coisa no script e outra no texto descrevendo seu problema, deixe-me ver se
consigo ajudá-lo.

   Estou assumindo que o que você escreveu é o que estava tentando fazer no
script. Vamos lá.

    A condição do while deve ser TRUE para que o corpo seja executado.

   Tente utilizar: while test "$?" -ne 0 -o "$Xx" -le 3

   Neste caso o while será executado se ("$?" -ne 0) ou ("$Xx" -le 3). Assim
somente sairá do while se as duas forem falsas.

   Espero ter ajudado.

Abraços,

   William



Em 17/10/07, pablo oliveira <address@hidden> escreveu:
>
>
> Ae galera, blz
>
> olha soh... to com um problema em um script com duas condições no while,
> segue a parte que interessa:
>
> if [ $count -eq 0 ]; then
> Xx=1
> # Rotina do mail
>
> SCfrom="address@hidden <dominio%40dominio.com.br>"
> SCto="$address@hidden <%24END%40torpedoemail.com.br>" # função
> anterior define isso)
> SCsubject="Host parado $HOSTS - `date +%d-%m-%y-%H:%M`"
> SCserver="200.xxx.xxx.xxx"
> SCbody=" Caro Administrador, o Host $HOSTS em $NOME esta sem comunicacao,
> favor revisar!"
> echo -e "From: $SCfrom \nSubject: $SCsubject \nTo: $SCto \n\n$SCbody\n\n"
> | msmtp --host=$SCserver -f $SCfrom -- $SCto
>
> while test "$?" -ne 0 & "$Xx" -le 3 ; # tambem usei como "while [ "$?" -ne
> 0 ] & [ "$Xx" -le 3 ];"
> do
> ## Rotina do mail
> Xx=$((Xx+1));
> sleep 10
> SCfrom="address@hidden <dominio%40dominio.com.br>"
>
> SCto="$address@hidden <%24END%40torpedoemail.com.br>" # função
> anterior define isso)
>
> SCsubject="Host parado $HOSTS - `date +%d-%m-%y-%H:%M`"
>
> SCserver="200.xxx.xxx.xxx"
>
> SCbody=" Caro Administrador, o Host $HOSTS em $NOME esta sem comunicacao,
> favor revisar!"
>
> echo -e "From: $SCfrom \nSubject: $SCsubject \nTo:
> $SCto \n\n$SCbody\n\n" | msmtp --host=$SCserver -f $SCfrom -- $SCto
>
> done;
> fi;
>
> limpei o que não interessava... mas o problema é o seguinte, na linha :
>
> while test "$?" -ne 0 & "$Xx" -le 3 ; # tambem usei como "while [ "$?" -ne
> 0 ] & [ "$Xx" -le 3 ];"
>
> Se alguma das duas opões for diferente ele deveria passar o while, isnto é
> se o $? for igual a zero ou se o $Xx for maior que 3.
>
> Mas enquanto as duas enquanto uma das duas opções é verdadeira ele fica no
> loop até ambas serem falsas... alguem tem alguma idéia a respeito?
>
> OBS: preciso das duas condições.
>
> Pablo
>
> Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
> armazenamento!
> http://br.mail.yahoo.com/
> 
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]