telefone

Publicado por Perfil removido 17/10/2005

[ Hits: 7.090 ]

Download telefone




Baseado em Caderninho Telefonico, by pop_lamen Versao 0.1
Publicado por Wainer Chiari em 10/09/2004 no VOL
Endereço da publicação original:
http://www.vivaolinux.com.br/scripts/verScript.php?codigo=594

A grande modificação que existe é na estética e nas forma como as funções são implementadas, existem maior número de opções e os telefones podem ser catalogados em categorias, as buscas também pode ser realizada por categorias

IMPORTANTE! Leia o começo do script antes de usar

  



Esconder código-fonte

#!/bin/sh

# Baseado
# "---------------------------------------"
# " Caderninho Telefonico, by pop_lamen   "
# " Versao 0.1                       "
# " email: r0xing@bol.com.br"
# "---------------------------------------"
#  Publicado por Wainer Chiari em 10/09/2004 no VOL
#  Endereço da publicação
#  http://www.vivaolinux.com.br/scripts/verScript.php?codigo=594
# "---------------------------------------"
#
#  A grande modificação que existe é na estética e nas forma como as funções são 
#  implementadas, existem maior número de funções e os telefones podem ser 
#  catalogados em categorias ...
#  As buscas também pode ser realizada por categorias
# 
# ----------------------------------------
#  Arquivo telefones: ~/.telefones
#  Limitações : O alinhamento não comporta mais de 8 dígitos para telefone e 
#               também não suporta mais de 35 carateres para o nome do usuários
#  Consequências : Se ocorrer violação das limitações apenas o visual ficará 
#                  comprometido, o script funcionará a 100 %
# ----------------------------------------
#  Bom já que se trata de um script baseado em outro, os arquivos fontes são 
#  100 % compatíveis entre si, guardando algumas ressalvas
#
#  1 - O script original não tem suporte a categorias de telefones
#    - Conclusão : Não adianta usar o arquivo anterior e esperar que 
#                  simplesmente funcione a tal catalogação de categorias
#    - Solução   : Edite o arquivo ~/.telefones 
#
#  2 - A estética entre os arquivos dos scripts é diferente no alinhamento.
#    - Conclusão : Fica feio misturar estéticas, mas funciona do mesmo jeito
#    - Solução   : Edite o arquivo ~/.telefones 
#
#
#     Não há nada que um editor de textos não consiga resolver 
#     com MUITA facilidade, para isso, crie uns novos dados de telefone, 
#     e veja a diferença, verá que existe um alinhamento nome, telefone
#     e categoria, use espaços, não use tab, e é só. 
#     Se quiser, pode aproveitar e colocar as categorias da forma que 
#     apareceram nas novas entradas.
#
#     O arquivo onde são guardados os telefones é o ~/.telefones.
# 
# ----------------------------------------
# A compatibilidade reversa, ou seja, do arquivo gerado nessa versão com o arquivo 
#   gerado pelo script original é de 100 %, entretanto, as categorias deixarão de
#   ser preenchidas e, é claro, a estética volta a antiga.
#
# ----------------------------------------
#     FAÇA UM BACKUP DO ARQUIVO ANTES DE QUALQUER MANIPULAÇÃO DO MESMO
#     NÃO ME RESPONSABILIZAREI POR QUALQUER DANO CAUSADO PELA PERDA ENVENTUAL DOS
#     TELEFONES MANTIDOS EM ~/.telefones 
# ----------------------------------------
#
#  Script modificado por : J. F. Mitre
#
# ----------------------------------------



FONTE=~/.telefones
TMP=/tmp/cdnho.fones

banner (){
    echo "------------------------------------------------------------------------------"
    echo "                         Caderno Telefônico "
    echo "------------------------------------------------------------------------------"   
    echo "$(wc -l $FONTE | awk '{printf ($1)}') Telefone(s) no total"
    echo
    echo 
}

sair (){
    clear
    exit 0
}

lista(){
clear;banner
echo "Selecione uma opção:

    Lista de telefones :
        [1] Lista completa
        [2] Residênciais
        [3] Celulares
        [4] Comerciais
        [5] De Recados
        [6] De Emergência
        [7] Outras categorias
"
read opcaolista
case $opcaolista in
    2) BUSCAR="Residêncial" ;;
    3) BUSCAR="Celular" ;;
    4) BUSCAR="Comercial" ;;
    5) BUSCAR="Recados" ;;
    6) BUSCAR="Emergência" ;;
    7) BUSCAR="Outras" ;;
    *) BUSCAR=. ;;
esac

      cat $FONTE | grep -i $BUSCAR > $TMP
      clear;banner
      echo "Foram encontrados `wc -l $TMP | awk '{printf($1)}'` telefones:"
      echo "------------------------------------------------------------------------------"
      echo
      cat $TMP |sort
      echo "------------------------------------------------------------------------------"
      echo "Pressione ENTER para sair"
      read VOLTAR
      main


}


busca (){
while :
do
    clear;banner
    BUSCA=
    echo "Entre com o nome (ou parte) ou telefone a buscar"
    read BUSCA
    if [ -z $BUSCA ]
    then
      echo "Voce nao digitou nada !!!"
      echo "Digite alguma coisa, ou peça uma lista completa"
    else
      echo buscando...
      cat $FONTE | grep -i $BUSCA > $TMP
      clear;banner
      echo "Foram encontrados `wc -l $TMP | awk '{printf($1)}'` telefones:"
      echo "------------------------------------------------------------------------------"
      echo
      cat $TMP |sort
      echo "------------------------------------------------------------------------------"
      echo "Pressione ENTER para sair"
      read VOLTAR
      main
    fi 
done    
}

categoria(){
clear
echo "Selecionando categoria"
echo "
Selecione uma opção:
    [1] Residêncial
    [2] Celular
    [3] Comercial
    [4] Recados
    [5] Emergência
    [6] Outros
"
read tipotelefone
case $tipotelefone in
    1) TCATEGORIA="Residêncial" ;;
    2) TCATEGORIA="Celular" ;;
    3) TCATEGORIA="Comercial" ;;
    4) TCATEGORIA="Recados" ;;
    5) TCATEGORIA="Emergência" ;;
    6) TCATEGORIA="Outras" ;;
esac


}


adiciona (){
    NOME=
    FONE=
    clear;banner
    echo "Digite o Nome a ser utilizado:"
    read NOME
    while [ -z "$NOME" ]
    do
        echo "Por favor, digite um nome:"
        read NOME
    done
    echo "Digite o telefone a ser adicionado:"
    read FONE
    while [ -z "$FONE" ]
    do
        echo "Por favor, digite um telefone:"
        read FONE
    done
# obtendo a categoria do telefone    
    categoria
    
    
    NUM=$(echo "$NOME" |wc -m)
    while [ "$NUM" -ge "36" ]; do
        echo "Nome muito grande"
        echo "Digite um nome menor"
        read NOME
    done
    
    while [ "$NUM" -lt "35" ]; do
        NOME=$NOME\ ;
        NUM=$(echo "$NOME" |wc -m)
    done 
    if [ $FONE -ge 10 ]; then
        echo "Número de telefone muito grande"
        echo "Essa agenda ainda não é capaz de lidar com esse número"
        main
    fi
    echo -e " $NOME $FONE  $TCATEGORIA" >> $FONTE
}

remover(){
clear
echo "Digite o número de telefone ou o nome que deseja eliminar"
echo "Digitando um nome serão eliminados todos os telefones da pessoa"
read elimineesse
echo 
if [ -z "$elimineesse" ]; then
  echo
  echo "Precisa digitar alguma coisa."
  echo
  read pause
  main
fi
echo "Esses telefones serão eliminados"
echo "------------------------------------------------------------------------------"
grep "$elimineesse" $FONTE
echo "------------------------------------------------------------------------------"
echo
echo "Deseja Prosseguir ? [s/n]"
echo "Uma cópia de backup será feita, mas substituirá um backup anterior"
read prosseguir
prosseg=0
while [ $prosseg == 0 ]; do
case $prosseguir in
   n|N) prosseg=1; main ;;
   s|S) prosseg=1
        rm -f $FONTE.bk &>/dev/null
        cp $FONTE $FONTE.bk
        sed -i /$elimineesse/Id $FONTE ;;
     *) echo "Escolha uma opção: 
               [S]im, para eliminar o(s) telefone(s)
               [N]ão, para retornar ao menu principal";;
esac
done


}

limpar () {
    while :
    do
    clear;banner
    echo "Tem certeza que deseja apagar todos os numeros? [sim|nao]"
    read APAGAS
    case $APAGAS in
    SIM|sim) clear;banner
            cp $FONTE $FONTE.$(date +%Y-%m-%d).backup
            echo "Um backup foi realizado: $FONTE.$(date +%Y-%m-%d).backup."
            rm -f $FONTE $TMP
            echo "Arquivos apagados com sucesso"
            echo "Criando nova db..."
            touch $FONTE
            echo "Pronto!"
            sleep 2
            break 
            ;;
    s) echo "Voce deve digitar a palavra toda!";sleep 2 ;;
    *) break ;;

    esac
    done
}

main(){
if [ -w $FONTE ]
then

while :
do
clear
banner
echo "------------------------------------------------------------------------------"
echo "Selecione uma opção"
echo
echo "[1] Listar telefones cadastrados"
echo "[2] Buscar um nome ou telefone"
echo "[3] Adicionar um novo telefone a lista"
echo "[4] Remover um telefone da lista"
echo "[5] Limpar os telefones existentes"
echo "[6] Sair (Q)"
echo
read ACTION 
case $ACTION in
    1|l|L) lista ;;
    2|b|B) busca ;;
    3|a|A) adiciona ;;
    6|q|Q) sair  ;;
    5) limpar ;;
    4|r|R) remover ;;
    *) echo "Resposta invalida" ;;
esac
done

else 
# Criando um arquivo database caso não encontre o mesmo  
  touch $FONTE
  main
fi
}
main

Scripts recomendados

Cria_DVD

Previsão do tempo em cores no terminal

Atualiza Leis

Conectando em Redes Diversas

Atualizando o sistema no Debian


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts