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

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

Re: [shell-script] duas condições com um if


From: denis costa
Subject: Re: [shell-script] duas condições com um if
Date: Tue, 23 Dec 2008 04:52:43 -0800 (PST)

Muito Obrigado Jimmy

--- Em ter, 23/12/08, jimmy <address@hidden> escreveu:
De: jimmy <address@hidden>
Assunto: Re: [shell-script] duas condições com um if
Para: address@hidden
Data: Terça-feira, 23 de Dezembro de 2008, 8:58










    
            saudações denis,



On Mon, Dec 22, 2008 at 04:06:17PM -0800, denis costa wrote:

> aparece essa mensagem:

> 

> ../media.sh: line 47: ((: < 0 ||  > 10: erro de sintaxe: operando esperado 
> (error token is "< 0 ||  > 10")

esse erro ocorreu porque a variável nota não foi inicializada,

quando o shell expandiu os parmetros para fazer a comparação ele acabou

por comparar nada com alguma coisa.



coloque no início do seu script:



nota=0



por exemplo;

ou force um valor default para variável quando esta estiver nula:



if ((${nota:-0} < 0 || ${nota:-0} > 10)); then

  ...

fi



> 

> 

> --- Em seg, 22/12/08, denis costa <deniscostadsc@ yahoo.com. br> escreveu:

> De: denis costa <deniscostadsc@ yahoo.com. br>

> Assunto: Re: [shell-script] duas condições com um if

> Para: shell-script@ yahoogrupos. com.br

> Data: Segunda-feira, 22 de Dezembro de 2008, 21:25

> 

> modifiquei e não deu certo tô mandado aqui o códido script.

> esse script tem teor didático pra eu me habituar com essa linguagem, pois não 
> conheço a sintaxe 100% do Shell!

> 

> #!/bin/bash

> #-------Variaveis usadas

> cont=1

> 

> #-------Chaves usadas

> verificanota= 0

>     

> #   Leitura das notas dos alunos

> while (($cont < 5)); do

>     echo "Digite o valor da $cont° nota:"    

>     read $nota

>     #   Verificar se a nota é valida

>     if (($nota < 0 || $nota > 10)); then

>         verificanota= 1

>         echo        

>         echo "Valor inválido como nota!"

>    

>      echo

>         #   Lê novamente as notas caso

>         # as notas tenham sido recebidas como

>         # inválidas.

>         while (($verificanota == 1))

>         do

>             echo "Digite uma nota válida:"

>             read $nota

>             if (($nota >= 0 && $nota <= 10));then

>                 verificanota= 0 

>             fi

>         done

>         exit 0

>     fi

>     total=$((total +

>  nota))

>     cont=$((cont + 1))

> done

> #   Calculo da média

> media=$((total/ 4))

> echo

> echo "A média do aluno é: $media"

> echo

> if (($media >= 7)); then

>     echo "Aluno Aprovado"

> else 

>     echo "Aluno de recuperação"

> fi

> echo

> echo "Digite a nota da Prova de Recuperação:"

> read $nota

> if (($nota < 0 || $nota > 10 )); then

>     verificanota= 1

>     echo        

>     echo "Valor inválido como nota!"

>     echo

>     #   Lê novamente as notas caso a nota da recuperação

>     # tenham sido recebidas como inválidas.

>     while (($verificanota == 1));     do

>         echo "Digite uma nota válida:"

>         read

>  $nota

>         if (($nota >= 0 && $nota <= 10)); then

>             verificanota= 0 

>         fi

>     done

>     if (($nota >= 7)); then

>         echo "Aluno Aprovado"

>     else

>         echo "Aluno Reprovado"    

>     fi

> fi

> 

> 

> 

> 

> 

> 

> --- Em dom, 21/12/08, Julio C. Neves <julio.neves@ gmail.com> escreveu:

> De: Julio C. Neves <julio.neves@ gmail.com>

> Assunto: Re: [shell-script] duas condições com um if

> Para: shell-script@ yahoogrupos. com.br

> Data: Domingo, 21 de Dezembro de 2008, 22:16

> 

> 

> 

> 

> 

> 

> 

> 

> 

> 

>     

>             Fala Denis,

> 

> faça assim:

> 

> 

> 

> if (($nota <= 0 || $nota >= 10)); then ....

> 

>  ou então:

> 

> if [ $nota -le 0 -o $nota -ge 10 ]; then ...

> 

> 

> 

> A primeira é mais veloz pq é bash puro.

> 

> -- 

> 

> Abração,

> 

> Julio

> 

> Cursos de Shell e Zenity nos finais de semana:

> 

> - Em SP ligue (11) 2125-4747;

> 

> - Em DF ligue (61) 3223-3000;

> 

> - Turmas fechadas em outras cidades ligue (21) 8112-9988

> 

> 

> 

> 2008/12/21 denis costa <deniscostadsc@ yahoo.com. br>

> 

> 

> 

> >   como poderia fazer para testar duas condições em um if, póis estou

> 

> > fazendo um programinha que necessita de uma verificação se um número esta em

> 

> > uma faixa de números entre 0 e 10 e quando está fora preciso trata-lós, logo

> 

> > pensei:

> 

> >

> 

> > if ($nota <= 0) || ($nota >= 10); then

> 

> > comandos

> 

> > fi

> 

> >

> 

> > mas se esse if lê 8 caiu nos comando dele, não tô entendo o por que

> 

> >

> 

> > Obrigado a quem possa ajudar

> 

> 

> -- 

> 

> Abração,

> 

> Julio

> 

> Cursos de Shell e Zenity nos finais de semana:

> 

> - Em SP ligue (11) 2125-4747;

> 

> - Em DF ligue (61) 3223-3000;

> 

> - Turmas fechadas em outras cidades ligue (21) 8112-9988

> 

> ------------ --------- --------- ------


      

    
    
        
         
        
        








        


        
        


      Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.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]