Cadastro em shell

Publicado por Perfil removido (última atualização em 23/09/2009)

[ Hits: 10.555 ]

Download cadnomeid_vinigren.sh




Um cadastro com nome e idade salvando em um arquivo texto. Possui pesquisa, excluir e editar, falta tratar a exclusão.

Se alguém quiser me dar algumas dicas estou aí, para tirar dúvidas também.

Estou iniciando em shell na faculdade.

Obrigado.

Vinicius

  



Esconder código-fonte

#!/bin/bash

bancodados=bd.txt
menu(){
   clear
   echo ".::Menu Principal::."
   echo
   echo "1. Novo Cadastro"
   echo "2. Alterar Cadastro"
   echo "3. Excluir Cadastro"
   echo "4. Pesquisar Cadastro"
   echo "5. Listar Cadastros"
   echo "6. Sair"
   echo
   echo "Digite uma Opcao: "
   read opcaom
   case $opcaom in
      1) cadastro ;;
      2) altera ;;
      3) exclui ;;
      4) pesquisa ;;
      5) lista ;;
      6) sleep; clear; exit ;;
      *) echo "Opcao nao Encontrada..."; echo ; menu ;;
   esac
}
cadastro(){
   clear
   echo "Novo Cadastro..."
   echo
   arq='bd.txt'
   if [ -f $arq ]
   then
      echo "Arquivo para Salvar Existe..."
   else
      echo "Arquivo para Salvar Não existe..."
      echo "Criando Arquivo para Salvar..."
      touch bd.txt
      echo "Arquivo Criado com Sucesso..."      
   fi
   echo
   echo "Digite um Nome: "
   read cadnome
   echo "Digite uma Idade: "
   read cadidade
   echo
   echo -n "Confirma? (s/n): "
        read resp
       if [ $resp = "s" ]; then
        echo "Salvando..."
        echo
   echo "$cadnome ; $cadidade" >> $bancodados
     else 
   echo "Cadastro nao Salvo..."
   fi
   sleep 3
   echo "Tecle enter para voltar ao Menu"
         read
   menu
}
pesquisa(){
         clear
   echo "Pesquisando..."
   echo
         echo "Digite o nome para Pesquisar: "
         read pesqnome
   echo "Nomes Encontrados..."
   grep -i $pesqnome $bancodados
   echo
   sleep 3
        echo "Tecle enter para voltar ao Menu"
        read
        menu
}
lista(){
   clear
   echo "Listando..."
   echo
   echo "Nomes na Lista..."
   sort $bancodados
   echo
        sleep 3
        echo "Tecle enter para voltar ao Menu"
        read
        menu
}
exclui(){
   clear
   echo "Excluindo..."
   echo
        echo "Nomes na Lista..."
        sort $bancodados
   echo
   echo "Digite um nome para Excluir: "
   read exnome
   echo
        sleep 1;
   cat $bancodados | grep -iv $exnome > bdtmp.txt
   rm $bancodados
   cp bdtmp.txt $bancodados
   rm bdtmp.txt    
   echo "Excluido..."
        echo
        sleep 3
        echo "Tecle enter para voltar ao Menu"
        read
        menu
}
altera(){
   clear
   echo "Alterando..."
   echo
   echo "Nomes da Lista..."
   sort $bancodados
   echo
   echo "Digite o nome para Alterar: "
   read altnome
   cat $bancodados | grep -iv $altnome > bdtmp.txt
        rm $bancodados
        cp bdtmp.txt $bancodados
        rm bdtmp.txt
   echo "Digite a nova Idade: "
   read altidade
   echo "$altnome ; $altidade" >> $bancodados
   echo
   echo "Alterando..."
        sleep 3
        echo "Tecle enter para voltar ao Menu"
        read
        menu
}
menu

Scripts recomendados

Mostrando aviso no notificação usando Yad

Instalação do ISC DHCP server no Ubuntu e derivados

Script simples para gerenciar netcat

smbldap-groupCopy copiar grupos de user1 para user2

rc.firewall


  

Comentários
[1] Comentário enviado por removido em 23/09/2009 - 23:58h

bacana seu script. da uma buscada no meu advix, de repente vc tira alguma ideia dele, é um banquinho fuleiro de processo judicial. abs

[2] Comentário enviado por removido em 21/07/2010 - 17:10h

muito bom o script...porem, por favor organize ele, faça comentarios fica dificil de entender assim, se alguem precisar altera-lo fica complicado...

faça um cabeçalho
comente as funçoes e comandos mais complicados
de espaçamento

assim, fica mais facil o entendimento do script

[3] Comentário enviado por vitinho217 em 18/06/2014 - 10:34h

Tenho algimas dicas:

1) você criou uma variável(bancodado) para guardar o caminho do arquivo de armazenamento, então por que criar outra(arq) para o mesmo propósito ?

2) A verificação se o arquivo existe deveria estar no começo do script, imagine que o usuário entre em seu script pela primeira vez e tente listar os registros, ocorrerá um erro porque o arquivo desejado não existe.

3) Não entendi o sleep sem operandos no caso 6 do case.

4) Na função pesquisando vcoê imprime pesquisando... e depois pede o nome para pesquisar ? Isso não faz sentido.

5) Use o fgrep para pesuisar, ele é mais para pesquisas sem patterns.

6) use o more no listar, para fazer paginação do resultado.

7) No excluir e alterar você pode suar apenas:

cat $bancodados | grep -iv $altnome > $bancodados

Isso irá sobrescrever o arquivo, não sendo necessário criar um outro arquivo temporário(bdtmp.txt).

Essas são minhas ticas, espero que tenham ajudado.

VIVA O LINUX !


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts