[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]
- While e as condições, pablo oliveira, 2007/10/17
- Re: [shell-script] While e as condições,
William José Vicente <=