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