telefone
Publicado por Perfil removido 17/10/2005
[ Hits: 7.448 ]
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
#!/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
Jogo de labirinto feito em shell script
Remoção completa de gateway para Tivoli Framework
Script pra instalar / atualizar o Postfix no Slackware
Criaimg - Cria arquivos de imagem
Instalador de Programas Essenciais
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Não consigo instalar distro antiga no virtualbox nem direto no hd (11)
Quais os códigos mais dificeis que vcs sabem fazer? (12)
systemd-resol... precisa ser reiniciado periodicamente [RESOLVIDO] (7)









