Vou dar umas dicas pra ir melhorando... otimizando.

1) O teste de existência do arquivo pode ser feito com
if [ -f arquivo ]

2) Sua variável dia pode ser definida em uma linha:
dia=$(date "+%A, %d de %B de %Y")

3) A opção do menu pode ser lida com
read -p

4) Você pode colocar a exibição do menu em uma função

5) Na função de cadastro é mais intuitivo pedir as informações 
separadamente. Depois vc as concatena no arquivo.

6) Pesquisa se escreve com S :)

7) Tenho outras sugestões, mas deixemos o resto do povo falar um
pouco :)

Fabiano Caixeta Duarte
Consultor em soluções para Redes de Computadores
Ribeirão Preto - SP


voyeg3r escreveu:
> Gostaria que os membros da lista melhorassem este script. 
> tirando os erros, que sei, ainda haver.
> 
> Se alguém tiver algo melhor, por favor publique na lista
> 
> #!/bin/bash
> # Criado em:Qui 05/Jan/2006 hs 13:13
> # ultima modificação: Qui 05 Jan 2006 16:57:25 BRST
> # Agenda telefônica
> # Autor: Sérgio Luiz Araújo Silva 
> 
> # verifica se há .fones.txt caso não exista
> # cria o arquivo omitindo mensagem de erro
> 
> Fones="$HOME/.fones.txt"
> if ls $Fones  2>> /dev/null
> then 
>     touch $Fones
> fi
> 
> clear
> 
>     dia_semana=`date +%A`
>     dia_mes=`date +%d`
>     mes=`date +%B`
>     ano=`date +%Y`
> 
>     dia=`echo "   $dia_semana $dia_mes de $mes de $ano"`
>     hora=`date +%R`
>  
> 
>     clear
>     echo 
>     echo
>     echo "            BEM VINDO À SUA AGENDA TELEFÔNCIA"
>     echo
>     echo "                        ( O O )"
>     echo "             ====oOO==(_)==OOo====="
>     sleep 1
> 
> 
> _principal(){
>     # ==========================
>     #    Menu Principal
>     # ==========================
>     clear
>     echo
>     echo
>     echo "     ======================================="
>     echo "       A G E N D A   T E L E F Ô N I C A"   
>     echo "         M E N U   P R I N C I P A L "
>     echo "     ======================================="
>     echo "   $dia $hora"
>     echo 
>     echo "      [1] Fazer um novo Cadastro "
>     echo "      [2] Consultar um Nome"
>     echo "      [3] Editar a agenda com o vim"
>     echo "      [4] Sair"
>     echo
>     
>     if [ $resultado -ne "" ] 2>> /dev/null
>     then
>         echo "Sua ultima consulta foi" 
>         echo "$resultado"
>     fi
>     
>     echo -n "      Digite a opção: "
>     read opcao 
>     case $opcao in
>     1) _cadastro
>     ;;
>     2) _consulta
>     ;;
>     3) 
>         echo "  Editando a sua agenda com o vim..."
>         sleep 1
>         vim $Fones
>         clear
>         echo 
>         echo "    RETORNANDO AO MENU PRICIPAL"
>         echo 
>         sleep 1
>        _principal
>     ;;
>     4) 
>     clear
>     exit 
>     ;;
>     *)  
>     clear
>     echo
>     echo "      Digite uma opção válida!"
>     echo "      As opções possíveis são:"
>     echo
>     echo "      [1] Fazer um novo Cadastro "
>     echo "      [2] Consultar um Nome"
>     echo "      [3] Editar a agenda com o vim"
>     echo "      [4] Sair"
>     sleep 3
>     _principal
>     esac
> }
> 
> # =======================
> #    Cadastro
> # =======================
> _cadastro(){
>     clear
>     echo "Agenda Telefônica"
>     echo "Cadastro - Novo Contato"
>     echo
>     echo -n "Digite o Nome Seguido do Telefône: "
>     read Nome
> 
>     echo $Nome >> $Fones 
>     echo "$Nome inserido na agenda"
>     sleep 1
>     echo
>     sleep 3
>     sort $Fones
>     sleep 3
> 
>            # ==========================
>            #   MENU DE CADASTRO
>            # ==========================
>                 while
>                 true
>                 do
>                 clear
>                     echo "  ================================"
>                     echo "        C A D A S T R O           "
>                     echo "  ================================"
>                     echo "   Escolha uma das opções abaixo  "
>                     echo 
>                     echo "   [1] Menu Principal "
>                     echo "   [2] Cadastrar outro nome"
>                     echo "   [3] Editar sua agenda com o VIM"
>                     echo "   [4] Sair"
>                     echo
>                     echo -n "  Digite a opção: "
>                     read opcao 
>                     case $opcao in
>                     1) _principal
>                     ;;
>                     2) _consulta
>                     ;;
>                     3)
>                     echo "Editando sua agenda com o vim..."
>                     sleep 1
>                     vim $Fones
>                     ;;
>                     4) 
>                     clear
>                     exit
>                     ;;
>                     *) 
>                     echo "   Digite uma opção válida!"
>                     echo
>                     echo "   As opções possíveis são:"
>                     echo
>                     echo "   [1] Menu Principal "
>                     echo "   [2] Cadastrar outro nome"
>                     echo "   [3] Editar sua agenda com o VIM"
>                     echo "   [4] Sair"
> 
>                     sleep 1
>                     _cadastro
>                     esac
>                 done
> 
> }
> 
> # =======================
> #    CONSULTA
> # =======================
> _consulta(){
>     clear
>     echo "Agenda Telefônica Linux Way"
>     echo "Consulta"
>     echo
>     echo -n "Digite o Nome para pesquiza: "
>     read Nome
> 
>     if resultado=`grep -i $Nome $Fones` 2>> /dev/null
>       then
>            echo "$resultado"
>            sleep 5
>            clear
>   
> 
>            # ==========================
>            #   MENU DE CONSULTA
>            # ==========================
>                 while
>                 true
>                 do
>                 clear
>                     echo "   ==================================="
>                     echo "           C O N S U L T A            "
>                     echo "   ==================================="
>                     echo "   Escolha uma das opções abaixo"
>                     echo 
>                     echo "   [1] Menu Principal "
>                     echo "   [2] Continuar consulta"
>                     echo "   [3] Sair"
>                     echo 
> 
>                    if [ $resultado -ne "" ] 2>> /dev/null
>                    then
>                        echo "Sua ultima consulta foi"
>                        echo "$resultado"
>                    fi 
>                    
>                     echo
>                     echo
>                     
>                     echo -n "   Digite a opção: "
>                     read opcao 
>                     case $opcao in
>                     1) _principal
>                     ;;
>                     2) _consulta
>                     ;;
>                     3)
>                     clear
>                     exit
>                     ;;
>                     *) 
>                     clear
>                     echo
>                     echo "          Digite uma opção válida!"
>                     sleep 1
>                     clear
>                     esac
>                 done
> 
>          else
>            echo "$Nome não encontrado no banco de dados!"
>     fi
>       
>     sleep 3
> }
> 
> 
> _principal
> 
> 
>     
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: [EMAIL PROTECTED]
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>  
> Links do Yahoo! Grupos
> 
> 
> 
> 
>  
> 
> 
> 
> 


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a