[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: case com opção de retorno e tratamento de opção
From: |
Anderson Junior |
Subject: |
Re: case com opção de retorno e tratamento de opção |
Date: |
Wed, 16 Oct 2013 18:34:23 -0000 |
User-agent: |
eGroups-EW/0.82 |
justamente Robson, quero que o programa seja novamente chamado, antes de ler a
mensagem eu ja tinha postado algo, mas vou tentar melhorar o código com o uso
do while
--- Em address@hidden, Robson Alexandre <alexandrerobson@...> escreveu
>
> Bom Dia a todos,
>
> acho q o q o Anderson quer Júlio, é com $0 é chamar novamente o programa em
> loop.
> Nesse caso seria melhor fazer um while : tratando as variáveis como no
> exemplo do aurelio.net em
> http://aurelio.net/shell/dialog/#menuloop
>
> #!/bin/bash
> # Cadastro de motos
> while :
> do
> clear
> read -p "Marca: " marca
> read -p "Modelo: " modelo
> read -p "Cor: " cor
> read -p "Placa: " placa
> idmoto=`wc -l < dbmotos`
> echo $idmoto";"$marca";"$modelo";"$cor";"$placa >> dbmotos
> read -p "Cadastrar nova moto?[s ou n]: " opcao
> case $opcao in
> [Ss]) break;;
> [Nn]) ./sis_cad && exit;;
> *) echo -n "Opção invalida digite s ou n!"
> esac
> done
>
> Atenciosamente
> Robson Alexandre
>
>
>
>
> Em 16 de outubro de 2013 10:46, Julio C. Neves <julio.neves@...>escreveu:
>
> > **
> >
> >
> > Anderson, agradeço o elogio ao meu trabalho que publiquei em
> > http://wiki.softwarelivre.org/TWikiBar/BatePapos
> >
> > Dando uma otimizada no seu código:
> >
> > #!/bin/bash
> > # Cadastro de motos
> > clear
> > read -p "Marca: " marca
> > read -p "Modelo: " modelo
> > read -p "Cor: " cor
> > read -p "Placa: " placa
> > idmoto=`wc -l < dbmotos`
> > echo $idmoto";"$marca";"$modelo";"$cor";"$placa >> dbmotos
> > read -p "Cadastrar nova moto?[s ou n]: " opcao
> > case $opcao in
> > [Ss]) $0 ;;
> > [Nn]) ./sis_cad ;;
> > *) echo -n "Opção invalida digite s ou n!"
> > read
> > esac
> >
> > Tirei o pedaço a seguir:
> > read opcao ;&
> > w) $0 ;;
> > porque qdo se o terminador ;&, o próximo bloco será executado
> > *obrigatoriamente*,
> > ou seja se não for teclado NnSs, o bloco do w.
> >
> > Outra coisa que acho que está furado, é o $0. Essa variável contém o nome
> > do programa, mas antes dela é necessário algum cmd (um echo p.ex.)
> >
> > Abcs,
> > Julio
> > *@juliobash
> > *
> > A partir de 28/10 estarei ministrando um curso de 40 horas em
> > Curitiba<http://www2.softsell.com.br/?system=treinamentos&id=323&action=read>
> > .*
> > *
> > A partir de 25/11 estarei ministrando um curso de 40 horas no Rio de
> > Janeiro <http://edx.srv.br/treinamento/shell-script/>.
> >
> >
> >
> > Em 16 de outubro de 2013 01:24, Anderson Junior <
> > andersonscinfo@...> escreveu:
> >
> > **
> >>
> >>
> >> boa noite caros amigos, estou lendo estes artigos
> >> http://wiki.softwarelivre.org/TWikiBar/BatePapos e aprendendo shell,
> >> muito satisfeito e agradecido, realmente shell é o bicho, neste momento to
> >> fazendo alguns scripts para testar oque vou aprendendo, e estou com uma
> >> dificuldade neste:
> >>
> >> #!/bin/bash
> >> # Cadastro de motos
> >> clear
> >> echo -n "Marca: "
> >> read marca
> >> echo -n "Modelo: "
> >> read modelo
> >> echo -n "Cor: "
> >> read cor
> >> echo -n "Placa: "
> >> read placa
> >> idmoto=`wc -l < dbmotos`
> >> echo $idmoto";"$marca";"$modelo";"$cor";"$placa >> dbmotos
> >> echo -n "Cadastrar nova moto?[s ou n]: "
> >> read opcao
> >> opcao=$(echo $opcao | tr SN sn)
> >> case $opcao in
> >> s) $0 ;;
> >> n) ./sis_cad ;;
> >> *) echo -n "Opç invalida digite s ou n!" && read opcao ;&
> >> w) $0 ;;
> >> esac
> >>
> >> meu problema é nessa linha onde ele trata se o usuario quer sair ou
> >> digitar novo registro, caso ele apert n ou s funciona, mas se clicar alguma
> >> outra coisa eu não concegui entender como tratar, qualquer ajuda é bem
> >> vinda, criticas tbm, abraços.
> >>
> >> Att.
> >> Anderson Junior
> >>
> >>
> >
> >
>