Muito Obrigado Wnder Wildner!!!!! --- Em ter, 23/12/08, Wander Wildner <wander.wild...@gmail.com> escreveu: De: Wander Wildner <wander.wild...@gmail.com> Assunto: Re: [shell-script] duas condições com um if Para: shell-script@yahoogrupos.com.br Data: Terça-feira, 23 de Dezembro de 2008, 9:44
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 <ronaldo_tgz@ yahoo.com. br> > 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<deniscostadsc% 40yahoo.com. br>> > escreveu: > > De: denis costa <deniscostadsc@ yahoo.com. br<deniscostadsc% 40yahoo.com. > > br> > > > > Assunto: Re: [shell-script] duas condições com um if > > Para: shell-script@ yahoogrupos. com.br<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 <julio.neves@ gmail.com<julio.neves% > > 40gmail.com> > > escreveu: > > De: Julio C. Neves <julio.neves@ gmail.com <julio.neves% 40gmail.com> > > > Assunto: Re: [shell-script] duas condições com um if > > Para: shell-script@ yahoogrupos. com.br<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] 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]