[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: |
Wed, 24 Dec 2008 04:01:23 -0800 (PST) |
Confesso segui uma conduta que não condiz com o aprendizado mútuo que é o que
pretendemos...
emrelação ao meu problema (nunca programei em Shell, não conheço a sintaxe do
mesmo)
O problema não era na desição do if (como eu pensei e tanto trabalhei pra
resolver)e sim na leitura das variaveis:
read $variavel
em vez de...
read variavel # <- o correto
agradeço aos que colaboraram (Julio Neves, Wander Wildner, Jimmy) na resolução
dessa questão
--- 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]