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: Wander Wildner
Subject: Re: [shell-script] duas condições com um if
Date: Tue, 23 Dec 2008 09:44:32 -0200

Bom dia Senhores.

Na realidade basta o Denis ler a variável da seguinte forma:

*read nota*

Ou seja, sem o "$". Não precisa iniciar a variável.

Ficaria de seguinte forma:

#!/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 Ã(c)alida

    if (( $nota < 0 || $nota > 10 )); then
        verificanota=1
        echo
        echo "Valor invádo como nota!"
        echo
        #   Lêovamente as notas caso
        # as notas tenham sido recebidas como
        # invádas.
...
...
...


2008/12/23 jimmy <address@hidden>

>   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 
> > <address@hidden<deniscostadsc%40yahoo.com.br>>
> escreveu:
> > De: denis costa <address@hidden<deniscostadsc%40yahoo.com.br>
> >
> > Assunto: Re: [shell-script] duas condições com um if
> > Para: address@hidden<shell-script%40yahoogrupos.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 
> > <address@hidden<julio.neves%40gmail.com>>
> escreveu:
> > De: Julio C. Neves <address@hidden <julio.neves%40gmail.com>>
> > Assunto: Re: [shell-script] duas condições com um if
> > Para: address@hidden<shell-script%40yahoogrupos.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
> >
> > ------------------------------------
>  
>



-- 
Att,
Thiago Guedes Pereira
84687892


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



reply via email to

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