telefone

Publicado por Perfil removido 17/10/2005

[ Hits: 7.209 ]

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

Cálculo de número primo

Script para limpeza de arquivos temporários em Sabayon Linux

sincleg: sincronizador de legendas (srt)

Multiconversor (Octal para binário, decimal para hexadecimal, etc)

Twitter via shell


  

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